ierail 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/test/unit/station.rb CHANGED
@@ -2,13 +2,18 @@ $:.unshift(File.join(File.dirname(__FILE__), '..','..', 'lib'))
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- require 'minitest/autorun'
6
- require 'ierail'
7
-
8
5
  class StationTest < MiniTest::Unit::TestCase
9
6
  def setup
10
7
  ir = IERail.new
11
- @station = ir.stations.sample #Use a random station
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
11
+ c.hook_into :webmock
12
+ end
13
+
14
+ VCR.use_cassette('stations') do
15
+ @station = ir.stations.sample #Use a random station
16
+ end
12
17
  end
13
18
 
14
19
  def test_that_a_station_has_a_description
@@ -37,7 +42,7 @@ class StationTest < MiniTest::Unit::TestCase
37
42
  end
38
43
 
39
44
  def test_that_a_stations_has_an_id
40
- refute_empty @station.id
45
+ refute_nil @station.id
41
46
  end
42
47
  end
43
48
 
@@ -2,17 +2,26 @@ $:.unshift(File.join(File.dirname(__FILE__), '..','..', 'lib'))
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- require 'minitest/autorun'
6
- require 'ierail'
7
-
8
5
  class StationDataTest < MiniTest::Unit::TestCase
9
6
  def setup
10
7
  ir = IERail.new
11
- @station_data = ir.station('Glenageary').sample
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
11
+ c.hook_into :webmock
12
+ end
13
+
14
+ VCR.use_cassette('station') do
15
+ @station_data = ir.station('Dublin Connolly').sample #Use a random station
16
+ end
12
17
  end
13
18
 
14
- def test_that_there_is_a_traincode
15
- refute_empty @station_data.traincode
19
+ def test_that_there_is_a_server_time
20
+ refute_nil @station_data.server_time
21
+ end
22
+
23
+ def test_that_there_is_a_train_code
24
+ refute_empty @station_data.train_code
16
25
  end
17
26
 
18
27
  def test_that_there_is_a_station_name_and_code
@@ -20,16 +29,24 @@ class StationDataTest < MiniTest::Unit::TestCase
20
29
  refute_empty @station_data.code
21
30
  end
22
31
 
32
+ def test_that_there_is_a_query_time
33
+ refute_nil @station_data.query_time
34
+ end
35
+
23
36
  def test_that_there_is_a_status
24
37
  refute_empty @station_data.status
25
38
  end
26
39
 
27
- def test_that_there_is_a_due_value
28
- refute_empty @station_data.due_in
40
+ def test_that_there_is_a_due_in_value
41
+ refute_nil @station_data.due_in
42
+ end
43
+
44
+ def test_that_there_is_a_minutes_early_value
45
+ refute_nil @station_data.minutes_early
29
46
  end
30
47
 
31
- def test_that_there_is_a_late_value
32
- refute_empty @station_data.late
48
+ def test_that_there_is_a_minutes_late_value
49
+ refute_nil @station_data.minutes_late
33
50
  end
34
51
 
35
52
  def test_that_there_is_a_query_time
@@ -37,7 +54,7 @@ class StationDataTest < MiniTest::Unit::TestCase
37
54
  end
38
55
 
39
56
  def test_that_there_is_a_train_date
40
- refute_empty @station_data.train_date
57
+ refute_nil @station_data.train_date
41
58
  end
42
59
 
43
60
  def test_that_origin_method_returns_a_hash
@@ -62,7 +79,7 @@ class StationDataTest < MiniTest::Unit::TestCase
62
79
  assert_equal @station_data.arrival.class, Hash
63
80
  end
64
81
 
65
- def test_that_there_is_an_arrival_sched_and_exp
82
+ def test_that_there_is_an_arrival_scheduled_and_expected
66
83
  refute_nil @station_data.arrival[:scheduled]
67
84
  refute_nil @station_data.arrival[:expected]
68
85
  end
@@ -71,7 +88,7 @@ class StationDataTest < MiniTest::Unit::TestCase
71
88
  assert_equal @station_data.departure.class, Hash
72
89
  end
73
90
 
74
- def test_that_there_is_a_departure_sched_and_exp
91
+ def test_that_there_is_a_departure_scheduled_and_expected
75
92
  refute_nil @station_data.departure[:scheduled]
76
93
  refute_nil @station_data.departure[:expected]
77
94
  end
@@ -79,4 +96,33 @@ class StationDataTest < MiniTest::Unit::TestCase
79
96
  def test_that_it_responds_to_late?
80
97
  assert_respond_to @station_data, :late?
81
98
  end
99
+
100
+ def test_that_late_not_early_or_on_time
101
+ if @station_data.late?
102
+ refute_same @station_data.late?, @station_data.early?
103
+ refute_same @station_data.late?, @station_data.on_time?
104
+ end
105
+ end
106
+
107
+ def test_that_it_responds_to_early?
108
+ assert_respond_to @station_data, :early?
109
+ end
110
+
111
+ def test_that_early_not_late_or_on_time
112
+ if @station_data.early?
113
+ refute_same @station_data.early?, @station_data.late?
114
+ refute_same @station_data.early?, @station_data.on_time?
115
+ end
116
+ end
117
+
118
+ def test_that_it_responds_to_on_time?
119
+ assert_respond_to @station_data, :on_time?
120
+ end
121
+
122
+ def test_that_on_time_not_early_or_late
123
+ if @station_data.on_time?
124
+ refute_same @station_data.on_time?, @station_data.early?
125
+ refute_same @station_data.on_time?, @station_data.late?
126
+ end
127
+ end
82
128
  end
data/test/unit/train.rb CHANGED
@@ -2,13 +2,18 @@ $:.unshift(File.join(File.dirname(__FILE__), '..','..', 'lib'))
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- require 'minitest/autorun'
6
- require 'ierail'
7
-
8
5
  class TrainTest < MiniTest::Unit::TestCase
9
6
  def setup
10
7
  ir = IERail.new
11
- @train = ir.trains.sample #Use a random train
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
11
+ c.hook_into :webmock
12
+ end
13
+
14
+ VCR.use_cassette('trains') do
15
+ @train = ir.trains.sample #Use a random station
16
+ end
12
17
  end
13
18
 
14
19
  def test_that_a_train_has_status
@@ -32,7 +37,7 @@ class TrainTest < MiniTest::Unit::TestCase
32
37
  end
33
38
 
34
39
  def test_that_a_train_has_a_date
35
- refute_empty @train.date
40
+ refute_nil @train.date
36
41
  end
37
42
 
38
43
  def test_that_a_train_has_a_message
@@ -2,28 +2,40 @@ $:.unshift(File.join(File.dirname(__FILE__), '..','..', 'lib'))
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- require 'minitest/autorun'
6
- require 'ierail'
7
-
8
5
  class TrainMovementTest < MiniTest::Unit::TestCase
9
6
  def setup
10
7
  ir = IERail.new
11
-
12
- train_code = ir.trains.sample.code #Use a random train code
13
- @train_movement = ir.train_movements(train_code).sample #Use a random movement from the random train
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
11
+ c.hook_into :webmock
12
+ end
13
+
14
+ VCR.use_cassette('trains') do
15
+ @train_code = ir.trains.first.code #Use a random train code
16
+
17
+ VCR.use_cassette('train_movements') do
18
+ # The hard-code of the Time here is to match the VCR cassette
19
+ # for this API call - otherwise we re-create all the fixtures,
20
+ # all the time, electrons squandered, early heat-death of
21
+ # universe ensues, exuent omnes, persued by entropy.
22
+ sample_t = Time.new(2014, 4, 19)
23
+ @train_movement = ir.train_movements(@train_code, sample_t).sample #Use a random movement from the random train
24
+ end
25
+ end
14
26
  end
15
-
27
+
16
28
  def test_that_location_method_returns_a_hash
17
29
  assert_equal @train_movement.location.class, Hash
18
30
  end
19
-
31
+
20
32
  def test_that_there_is_a_location_code_and_name_and_stop_number_and_type
21
33
  refute_empty @train_movement.location[:code]
22
34
  refute_empty @train_movement.location[:name]
23
35
  refute_nil @train_movement.location[:stop_number]
24
36
  refute_empty @train_movement.location[:type]
25
37
  end
26
-
38
+
27
39
  def test_that_arrival_method_returns_a_hash
28
40
  assert_equal @train_movement.arrival.class, Hash
29
41
  end
@@ -33,7 +45,7 @@ class TrainMovementTest < MiniTest::Unit::TestCase
33
45
  refute_nil @train_movement.arrival[:expected]
34
46
  refute_nil @train_movement.arrival[:actual]
35
47
  end
36
-
48
+
37
49
  def test_that_departure_method_returns_a_hash
38
50
  assert_equal @train_movement.departure.class, Hash
39
51
  end
@@ -43,8 +55,18 @@ class TrainMovementTest < MiniTest::Unit::TestCase
43
55
  refute_nil @train_movement.departure[:expected]
44
56
  refute_nil @train_movement.departure[:actual]
45
57
  end
46
-
58
+
47
59
  def test_that_it_responds_to_station
48
60
  assert_respond_to @train_movement, :station
49
61
  end
50
- end
62
+
63
+ def test_that_train_method_returns_a_hash
64
+ assert_equal @train_movement.train.class, Hash
65
+ end
66
+
67
+ def test_that_there_is_a_train_code_date_and_origin
68
+ refute_nil @train_movement.train[:code]
69
+ refute_nil @train_movement.train[:date]
70
+ refute_nil @train_movement.train[:origin]
71
+ end
72
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ierail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oisin Hurley
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-04-11 00:00:00.000000000 Z
13
+ date: 2014-04-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -18,20 +18,20 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.7'
21
+ version: '1.8'
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: 1.7.7
24
+ version: 1.8.1
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - "~>"
30
30
  - !ruby/object:Gem::Version
31
- version: '1.7'
31
+ version: '1.8'
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 1.7.7
34
+ version: 1.8.1
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rest-client
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -58,40 +58,100 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.5'
61
+ version: '1.6'
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: 1.5.0
64
+ version: 1.6.1
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '1.5'
71
+ version: '1.6'
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 1.5.0
74
+ version: 1.6.1
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: tzinfo
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.3'
81
+ version: '1.1'
82
82
  - - ">="
83
83
  - !ruby/object:Gem::Version
84
- version: 0.3.37
84
+ version: 1.1.0
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '0.3'
91
+ version: '1.1'
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 1.1.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: vcr
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '2.9'
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 2.9.0
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '2.9'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 2.9.0
115
+ - !ruby/object:Gem::Dependency
116
+ name: webmock
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '1.17'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 1.17.4
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.17'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 1.17.4
135
+ - !ruby/object:Gem::Dependency
136
+ name: timecop
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '0.6'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 0.6.2
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.6'
92
152
  - - ">="
93
153
  - !ruby/object:Gem::Version
94
- version: 0.3.37
154
+ version: 0.6.2
95
155
  description: Irish Rail Train Schedule and Status API
96
156
  email: oi.sin@nis.io
97
157
  executables: []
@@ -106,6 +166,16 @@ files:
106
166
  - LICENSE.txt
107
167
  - README.md
108
168
  - Rakefile
169
+ - fixtures/vcr_cassettes/find_station.yml
170
+ - fixtures/vcr_cassettes/northbound.yml
171
+ - fixtures/vcr_cassettes/southbound.yml
172
+ - fixtures/vcr_cassettes/southbound_from.yml
173
+ - fixtures/vcr_cassettes/station.yml
174
+ - fixtures/vcr_cassettes/station_times.yml
175
+ - fixtures/vcr_cassettes/stations.yml
176
+ - fixtures/vcr_cassettes/train_movements.yml
177
+ - fixtures/vcr_cassettes/trains.yml
178
+ - fixtures/vcr_cassettes/westbound.yml
109
179
  - ierail.gemspec
110
180
  - lib/core_ext.rb
111
181
  - lib/ierail.rb