ninoxe 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/README.md +1 -1
  2. data/db/migrate/20130710122648_set_accessibiliity_to_existing_stop_area.rb +4 -9
  3. data/lib/ninoxe/version.rb +1 -1
  4. metadata +87 -201
  5. data/app/models/chouette/mobility_need.rb +0 -4
  6. data/app/models/chouette/suitability.rb +0 -5
  7. data/spec/dummy/README.rdoc +0 -261
  8. data/spec/dummy/Rakefile +0 -6
  9. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  10. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  11. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  12. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  13. data/spec/dummy/app/mailers/.gitkeep +0 -0
  14. data/spec/dummy/app/models/.gitkeep +0 -0
  15. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  16. data/spec/dummy/config/application.rb +0 -56
  17. data/spec/dummy/config/boot.rb +0 -10
  18. data/spec/dummy/config/database.yml +0 -9
  19. data/spec/dummy/config/environment.rb +0 -7
  20. data/spec/dummy/config/environments/development.rb +0 -37
  21. data/spec/dummy/config/environments/production.rb +0 -67
  22. data/spec/dummy/config/environments/test.rb +0 -37
  23. data/spec/dummy/config/initializers/active_record.rb +0 -2
  24. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  25. data/spec/dummy/config/initializers/inflections.rb +0 -15
  26. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  27. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  28. data/spec/dummy/config/initializers/session_store.rb +0 -8
  29. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  30. data/spec/dummy/config/locales/en.yml +0 -5
  31. data/spec/dummy/config/routes.rb +0 -4
  32. data/spec/dummy/config.ru +0 -4
  33. data/spec/dummy/db/test.sqlite3 +0 -0
  34. data/spec/dummy/lib/assets/.gitkeep +0 -0
  35. data/spec/dummy/log/.gitkeep +0 -0
  36. data/spec/dummy/public/404.html +0 -26
  37. data/spec/dummy/public/422.html +0 -26
  38. data/spec/dummy/public/500.html +0 -25
  39. data/spec/dummy/public/favicon.ico +0 -0
  40. data/spec/dummy/script/rails +0 -6
  41. data/spec/models/chouette/access_link_spec.rb +0 -78
  42. data/spec/models/chouette/access_point_spec.rb +0 -193
  43. data/spec/models/chouette/active_record_spec.rb +0 -121
  44. data/spec/models/chouette/area_type_spec.rb +0 -53
  45. data/spec/models/chouette/company_spec.rb +0 -51
  46. data/spec/models/chouette/connection_link_spec.rb +0 -56
  47. data/spec/models/chouette/direction_spec.rb +0 -60
  48. data/spec/models/chouette/exporter_spec.rb +0 -28
  49. data/spec/models/chouette/file_validator_spec.rb +0 -28
  50. data/spec/models/chouette/group_of_line_spec.rb +0 -31
  51. data/spec/models/chouette/journey_pattern_spec.rb +0 -62
  52. data/spec/models/chouette/line_spec.rb +0 -106
  53. data/spec/models/chouette/loader_spec.rb +0 -69
  54. data/spec/models/chouette/network_spec.rb +0 -22
  55. data/spec/models/chouette/object_id_spec.rb +0 -146
  56. data/spec/models/chouette/route_spec.rb +0 -159
  57. data/spec/models/chouette/stop_area_spec.rb +0 -354
  58. data/spec/models/chouette/stop_point_spec.rb +0 -39
  59. data/spec/models/chouette/time_table_spec.rb +0 -372
  60. data/spec/models/chouette/transport_mode_spec.rb +0 -64
  61. data/spec/models/chouette/vehicle_journey_at_stop_spec.rb +0 -46
  62. data/spec/models/chouette/vehicle_journey_spec.rb +0 -204
  63. data/spec/presenters/chouette/geometry/general_presenter.rb +0 -1
  64. data/spec/presenters/chouette/geometry/line_presenter_spec.rb +0 -13
  65. data/spec/spec_helper.rb +0 -45
@@ -1,159 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Chouette::Route do
4
- subject { Factory(:route) }
5
-
6
- it { should validate_uniqueness_of :objectid }
7
- its(:objectid) { should be_kind_of(Chouette::ObjectId) }
8
-
9
- it { should validate_presence_of :name }
10
- it { should validate_presence_of :line }
11
- it { should validate_presence_of :wayback_code }
12
- it { should validate_presence_of :direction_code }
13
-
14
- context "reordering methods" do
15
- let( :bad_stop_point_ids){subject.stop_points.map { |sp| sp.id + 1}}
16
- let( :ident){subject.stop_points.map(&:id)}
17
- let( :first_last_swap){ [ident.last] + ident[1..-2] + [ident.first]}
18
-
19
- describe "#reorder!" do
20
- context "invalid stop_point_ids" do
21
- let( :new_stop_point_ids) { bad_stop_point_ids}
22
- it { subject.reorder!( new_stop_point_ids).should be_false}
23
- end
24
-
25
- context "swaped last and first stop_point_ids" do
26
- let!( :new_stop_point_ids) { first_last_swap}
27
- let!( :old_stop_point_ids) { subject.stop_points.map(&:id) }
28
- let!( :old_stop_area_ids) { subject.stop_areas.map(&:id) }
29
-
30
- it "should keep stop_point_ids order unchanged" do
31
- subject.reorder!( new_stop_point_ids).should be_true
32
- subject.stop_points.map(&:id).should eq( old_stop_point_ids)
33
- end
34
- it "should have changed stop_area_ids order" do
35
- subject.reorder!( new_stop_point_ids).should be_true
36
- subject.reload
37
- subject.stop_areas.map(&:id).should eq( [old_stop_area_ids.last] + old_stop_area_ids[1..-2] + [old_stop_area_ids.first])
38
- end
39
- end
40
- end
41
-
42
- describe "#stop_point_permutation?" do
43
- context "invalid stop_point_ids" do
44
- let( :new_stop_point_ids) { bad_stop_point_ids}
45
- it { should_not be_stop_point_permutation( new_stop_point_ids)}
46
- end
47
- context "unchanged stop_point_ids" do
48
- let( :new_stop_point_ids) { ident}
49
- it { should be_stop_point_permutation( new_stop_point_ids)}
50
- end
51
- context "swaped last and first stop_point_ids" do
52
- let( :new_stop_point_ids) { first_last_swap}
53
- it { should be_stop_point_permutation( new_stop_point_ids)}
54
- end
55
- end
56
- end
57
-
58
- describe "#stop_points" do
59
- context "#find_by_stop_area" do
60
- context "when arg is first quay id" do
61
- let(:first_stop_point) { subject.stop_points.first}
62
- it "should return first quay" do
63
- subject.stop_points.find_by_stop_area( first_stop_point.stop_area_id).should eq( first_stop_point)
64
- end
65
- end
66
- end
67
- end
68
- describe "#stop_areas" do
69
- let(:line){ Factory(:line)}
70
- let(:route_1){ Factory(:route, :line => line)}
71
- let(:route_2){ Factory(:route, :line => line)}
72
- it "should retreive all stop_area on route" do
73
- route_1.stop_areas.each do |sa|
74
- sa.stop_points.map(&:route_id).uniq.should == [route_1.id]
75
- end
76
- end
77
-
78
- context "when route is looping: last and first stop area are the same" do
79
- it "should retreive same stop_area one last and first position" do
80
- route_loop = Factory(:route, :line => line)
81
- first_stop = Chouette::StopPoint.where( :route_id => route_loop.id, :position => 0).first
82
- last_stop = Factory(:stop_point, :route => route_loop, :position => 5, :stop_area => first_stop.stop_area)
83
-
84
- route_loop.stop_areas.size.should == 6
85
- route_loop.stop_areas.select {|s| s.id == first_stop.stop_area.id}.size.should == 2
86
- end
87
- end
88
- end
89
-
90
- describe "#direction_code" do
91
- def self.legacy_directions
92
- %w{A R ClockWise CounterClockWise North NorthWest West SouthWest
93
- South SouthEast East NorthEast}
94
- end
95
- legacy_directions.each do |direction|
96
- context "when direction is #{direction}" do
97
- direction_code = Chouette::Direction.new( Chouette::Route.direction_binding[ direction])
98
- it "should be #{direction_code}" do
99
- subject.direction = direction
100
- subject.direction_code.should == direction_code
101
- end
102
- end
103
- end
104
- context "when direction is nil" do
105
- it "should be nil" do
106
- subject.direction = nil
107
- subject.direction_code.should be_nil
108
- end
109
- end
110
- end
111
- describe "#direction_code=" do
112
- context "when unknown direction is provided" do
113
- it "should change direction to nil" do
114
- subject.direction_code = "dummy"
115
- subject.direction.should be_nil
116
- end
117
- end
118
- context "when an existing direction (west) is provided" do
119
- it "should change direction Direction.west" do
120
- subject.direction_code = "west"
121
- subject.direction.should == "West"
122
- end
123
- end
124
- end
125
- describe "#wayback_code" do
126
- def self.legacy_waybacks
127
- %w{A R}
128
- end
129
- legacy_waybacks.each do |wayback|
130
- context "when wayback is #{wayback}" do
131
- wayback_code = Chouette::Wayback.new( Chouette::Route.wayback_binding[ wayback])
132
- it "should be #{wayback_code}" do
133
- subject.wayback = wayback
134
- subject.wayback_code.should == wayback_code
135
- end
136
- end
137
- end
138
- context "when wayback is nil" do
139
- it "should be nil" do
140
- subject.wayback = nil
141
- subject.wayback_code.should be_nil
142
- end
143
- end
144
- end
145
- describe "#wayback_code=" do
146
- context "when unknown wayback is provided" do
147
- it "should change wayback to nil" do
148
- subject.wayback_code = "dummy"
149
- subject.wayback.should be_nil
150
- end
151
- end
152
- context "when an existing wayback (straight_forward) is provided" do
153
- it "should change wayback Wayback.straight_forward" do
154
- subject.wayback_code = "straight_forward"
155
- subject.wayback.should == "A"
156
- end
157
- end
158
- end
159
- end
@@ -1,354 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Chouette::StopArea do
4
- let!(:quay) { Factory :stop_area, :area_type => "Quay" }
5
- let!(:boarding_position) { Factory :stop_area, :area_type => "BoardingPosition" }
6
- let!(:commercial_stop_point) { Factory :stop_area, :area_type => "CommercialStopPoint" }
7
- let!(:stop_place) { Factory :stop_area, :area_type => "StopPlace" }
8
- let!(:itl) { Factory :stop_area, :area_type => "ITL" }
9
-
10
- its(:objectid) { should be_kind_of(Chouette::ObjectId) }
11
-
12
- it { should validate_presence_of :name }
13
- it { should validate_presence_of :area_type }
14
- it { should validate_numericality_of :latitude }
15
- it { should validate_numericality_of :longitude }
16
-
17
-
18
- describe ".latitude" do
19
- it "should accept -90 value" do
20
- subject = Factory :stop_area, :area_type => "BoardingPosition"
21
- subject.latitude = -90
22
- subject.valid?.should be_true
23
- end
24
- it "should reject < -90 value" do
25
- subject = Factory :stop_area, :area_type => "BoardingPosition"
26
- subject.latitude = -90.0001
27
- subject.valid?.should be_false
28
- end
29
- it "should accept 90 value" do
30
- subject = Factory :stop_area, :area_type => "BoardingPosition"
31
- subject.latitude = 90
32
- subject.valid?.should be_true
33
- end
34
- it "should reject > 90 value" do
35
- subject = Factory :stop_area, :area_type => "BoardingPosition"
36
- subject.latitude = 90.0001
37
- subject.valid?.should be_false
38
- end
39
- end
40
-
41
- describe ".longitude" do
42
- it "should accept -180 value" do
43
- subject = Factory :stop_area, :area_type => "BoardingPosition"
44
- subject.longitude = -180
45
- subject.valid?.should be_true
46
- end
47
- it "should reject < -180 value" do
48
- subject = Factory :stop_area, :area_type => "BoardingPosition"
49
- subject.longitude = -180.0001
50
- subject.valid?.should be_false
51
- end
52
- it "should accept 180 value" do
53
- subject = Factory :stop_area, :area_type => "BoardingPosition"
54
- subject.longitude = 180
55
- subject.valid?.should be_true
56
- end
57
- it "should reject > 180 value" do
58
- subject = Factory :stop_area, :area_type => "BoardingPosition"
59
- subject.longitude = 180.0001
60
- subject.valid?.should be_false
61
- end
62
- end
63
-
64
- describe ".long_lat" do
65
- it "should accept longitude and latitude both as nil" do
66
- subject = Factory :stop_area, :area_type => "BoardingPosition"
67
- subject.longitude = nil
68
- subject.latitude = nil
69
- subject.valid?.should be_true
70
- end
71
- it "should accept longitude and latitude both numerical" do
72
- subject = Factory :stop_area, :area_type => "BoardingPosition"
73
- subject.longitude = 10
74
- subject.latitude = 10
75
- subject.valid?.should be_true
76
- end
77
- it "should reject longitude nil with latitude numerical" do
78
- subject = Factory :stop_area, :area_type => "BoardingPosition"
79
- subject.longitude = nil
80
- subject.latitude = 10
81
- subject.valid?.should be_false
82
- end
83
- it "should reject longitude numerical with latitude nil" do
84
- subject = Factory :stop_area, :area_type => "BoardingPosition"
85
- subject.longitude = 10
86
- subject.latitude = nil
87
- subject.valid?.should be_false
88
- end
89
- end
90
-
91
-
92
- describe ".children_in_depth" do
93
- it "should return all the deepest children from stop area" do
94
- subject = Factory :stop_area, :area_type => "StopPlace"
95
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint", :parent => subject
96
- commercial_stop_point2 = Factory :stop_area, :area_type => "CommercialStopPoint", :parent => commercial_stop_point
97
- quay = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
98
- subject.children_in_depth.should =~ [commercial_stop_point, commercial_stop_point2, quay]
99
- end
100
- it "should return only the deepest children from stop area" do
101
- subject = Factory :stop_area, :area_type => "StopPlace"
102
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint", :parent => subject
103
- commercial_stop_point2 = Factory :stop_area, :area_type => "CommercialStopPoint", :parent => commercial_stop_point
104
- quay = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
105
- subject.children_at_base.should =~ [quay]
106
- end
107
- end
108
-
109
- describe ".stop_area_type" do
110
- it "should have area_type of BoardingPosition when stop_area_type is set to boarding_position" do
111
- subject = Factory :stop_area, :stop_area_type => "boarding_position"
112
- subject.area_type.should == "BoardingPosition"
113
- end
114
- it "should have area_type of Quay when stop_area_type is set to quay" do
115
- subject = Factory :stop_area, :stop_area_type => "quay"
116
- subject.area_type.should == "Quay"
117
- end
118
- it "should have area_type of CommercialStopPoint when stop_area_type is set to commercial_stop_point" do
119
- subject = Factory :stop_area, :stop_area_type => "commercial_stop_point"
120
- subject.area_type.should == "CommercialStopPoint"
121
- end
122
- it "should have area_type of StopPlace when stop_area_type is set to stop_place" do
123
- subject = Factory :stop_area, :stop_area_type => "stop_place"
124
- subject.area_type.should == "StopPlace"
125
- end
126
- it "should have area_type of ITL when stop_area_type is set to itl" do
127
- subject = Factory :stop_area, :stop_area_type => "itl"
128
- subject.area_type.should == "ITL"
129
- end
130
- end
131
-
132
- describe ".parent" do
133
- it "should check if parent method exists" do
134
- subject = Factory :stop_area, :parent_id => commercial_stop_point.id
135
- subject.parent.should == commercial_stop_point
136
- end
137
- end
138
-
139
- describe ".possible_children" do
140
-
141
- it "should find no possible descendant for stop area type quay" do
142
- subject = Factory :stop_area, :area_type => "Quay"
143
- subject.possible_children.should == []
144
- end
145
-
146
- it "should find no possible descendant for stop area type boarding position" do
147
- subject = Factory :stop_area, :area_type => "BoardingPosition"
148
- subject.possible_children.should == []
149
- end
150
-
151
- it "should find descendant of type quay or boarding position for stop area type commercial stop point" do
152
- subject = Factory :stop_area, :area_type => "CommercialStopPoint"
153
- subject.possible_children.should =~ [quay, boarding_position]
154
- end
155
-
156
- it "should find no children of type stop place or commercial stop point for stop area type stop place" do
157
- subject = Factory :stop_area, :area_type => "StopPlace"
158
- subject.possible_children.should =~ [stop_place, commercial_stop_point]
159
- end
160
-
161
- it "should find no children of type ITL for stop area type ITL" do
162
- subject = Factory :stop_area, :area_type => "ITL"
163
- subject.possible_children.should =~ [stop_place, commercial_stop_point, quay, boarding_position]
164
- end
165
-
166
- end
167
-
168
- describe ".possible_parents" do
169
-
170
- it "should find parent type commercial stop point for stop area type boarding position" do
171
- subject = Factory :stop_area, :area_type => "BoardingPosition"
172
- subject.possible_parents.should == [commercial_stop_point]
173
- end
174
-
175
- it "should find parent type commercial stop point for stop area type quay" do
176
- subject = Factory :stop_area, :area_type => "Quay"
177
- subject.possible_parents.should == [commercial_stop_point]
178
- end
179
-
180
- it "should find parent type stop place for stop area type commercial stop point" do
181
- subject = Factory :stop_area, :area_type => "CommercialStopPoint"
182
- subject.possible_parents.should == [stop_place]
183
- end
184
-
185
- it "should find parent type stop place for stop area type stop place" do
186
- subject = Factory :stop_area, :area_type => "StopPlace"
187
- subject.possible_parents.should == [stop_place]
188
- end
189
-
190
- end
191
-
192
-
193
- describe ".near" do
194
-
195
- let(:stop_area) { Factory :stop_area, :latitude => 1, :longitude => 1 }
196
- let(:stop_area2) { Factory :stop_area, :latitude => 1, :longitude => 1 }
197
-
198
- it "should find a StopArea at 300m from given origin" do
199
- Chouette::StopArea.near(stop_area.to_lat_lng.endpoint(0, 0.250, :units => :kms)).should == [stop_area]
200
- end
201
-
202
- it "should not find a StopArea at more than 300m from given origin" do
203
- Chouette::StopArea.near(stop_area2.to_lat_lng.endpoint(0, 0.350, :units => :kms)).should be_empty
204
- end
205
-
206
- end
207
-
208
- describe "#to_lat_lng" do
209
-
210
- it "should return nil if latitude is nil" do
211
- subject.latitude = nil
212
- subject.to_lat_lng.should be_nil
213
- end
214
-
215
- it "should return nil if longitude is nil" do
216
- subject.longitude = nil
217
- subject.to_lat_lng.should be_nil
218
- end
219
-
220
- end
221
-
222
- describe "#geometry" do
223
-
224
- it "should be nil when to_lat_lng is nil" do
225
- subject.stub :to_lat_lng => nil
226
- subject.geometry.should be_nil
227
- end
228
-
229
- end
230
-
231
- describe ".bounds" do
232
-
233
- it "should return transform coordinates in floats" do
234
- Chouette::StopArea.connection.stub :select_rows => [["113.5292500000000000", "22.1127580000000000", "113.5819330000000000", "22.2157050000000000"]]
235
- GeoRuby::SimpleFeatures::Envelope.should_receive(:from_coordinates).with([[113.5292500000000000, 22.1127580000000000], [113.5819330000000000, 22.2157050000000000]])
236
- Chouette::StopArea.bounds
237
- end
238
-
239
- end
240
-
241
- describe "#default_position" do
242
-
243
- it "should return nil when StopArea.bounds is nil" do
244
- Chouette::StopArea.stub :bounds => nil
245
- subject.default_position.should be_nil
246
- end
247
-
248
- it "should return StopArea.bounds center" do
249
- Chouette::StopArea.stub :bounds => mock(:center => "center")
250
- subject.default_position.should == Chouette::StopArea.bounds.center
251
- end
252
-
253
- end
254
-
255
- describe "#children_at_base" do
256
- it "should have 2 children_at_base" do
257
- subject = Factory :stop_area, :area_type => "StopPlace"
258
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => subject
259
- quay1 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
260
- quay2 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
261
- subject.children_at_base.size.should == 2
262
- end
263
- end
264
-
265
-
266
- describe "#generic_access_link_matrix" do
267
- it "should have no access_links in matrix with no access_point" do
268
- subject = Factory :stop_area, :area_type => "StopPlace"
269
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => subject
270
- subject.generic_access_link_matrix.size.should == 0
271
- end
272
- it "should have 4 generic_access_links in matrix with 2 access_points" do
273
- subject = Factory :stop_area, :area_type => "StopPlace"
274
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => subject
275
- access_point1 = Factory :access_point, :stop_area => subject
276
- access_point2 = Factory :access_point, :stop_area => subject
277
- subject.generic_access_link_matrix.size.should == 4
278
- end
279
- end
280
- describe "#detail_access_link_matrix" do
281
- it "should have no access_links in matrix with no access_point" do
282
- subject = Factory :stop_area, :area_type => "StopPlace"
283
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => subject
284
- quay1 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
285
- quay2 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
286
- subject.detail_access_link_matrix.size.should == 0
287
- end
288
- it "should have 8 detail_access_links in matrix with 2 children_at_base and 2 access_points" do
289
- subject = Factory :stop_area, :area_type => "StopPlace"
290
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => subject
291
- quay1 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
292
- quay2 = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
293
- access_point1 = Factory :access_point, :stop_area => subject
294
- access_point2 = Factory :access_point, :stop_area => subject
295
- subject.detail_access_link_matrix.size.should == 8
296
- end
297
- end
298
- describe "#parents" do
299
- it "should return parent hireachy list" do
300
- stop_place = Factory :stop_area, :area_type => "StopPlace"
301
- commercial_stop_point = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => stop_place
302
- subject = Factory :stop_area, :parent => commercial_stop_point, :area_type => "Quay"
303
- subject.parents.size.should == 2
304
- end
305
- it "should return empty parent hireachy list" do
306
- subject = Factory :stop_area, :area_type => "Quay"
307
- subject.parents.size.should == 0
308
- end
309
- end
310
-
311
- describe "#clean_invalid_access_links" do
312
- it "should remove invalid access links" do
313
- # subject is a CSP with a SP as parent, a quay as child
314
- # 2 access_points of SP have access_link, one on subject, one on subject child
315
- # when detaching subject from SP, both access_links must be deleted
316
- stop_place = Factory :stop_area, :area_type => "StopPlace"
317
- subject = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => stop_place
318
- access_point1 = Factory :access_point, :stop_area => stop_place
319
- access_point2 = Factory :access_point, :stop_area => stop_place
320
- quay = Factory :stop_area, :parent => subject, :area_type => "Quay"
321
- access_link1 = Factory :access_link, :stop_area => subject, :access_point => access_point1
322
- access_link2 = Factory :access_link, :stop_area => quay, :access_point => access_point2
323
- subject.save
324
- subject.access_links.size.should == 1
325
- quay.access_links.size.should == 1
326
- subject.parent=nil
327
- subject.save
328
- subject.reload
329
- subject.access_links.size.should == 0
330
- quay.access_links.size.should == 0
331
- end
332
- it "should not remove still valid access links" do
333
- # subject is a Q of CSP with a SP as parent
334
- # 2 access_points, one of SP, one of CSP have access_link on subject
335
- # when changing subject CSP to another CSP of same SP
336
- # one access_links must be kept
337
- stop_place = Factory :stop_area, :area_type => "StopPlace"
338
- commercial_stop_point1 = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => stop_place
339
- commercial_stop_point2 = Factory :stop_area, :area_type => "CommercialStopPoint" ,:parent => stop_place
340
- access_point1 = Factory :access_point, :stop_area => stop_place
341
- access_point2 = Factory :access_point, :stop_area => commercial_stop_point1
342
- subject = Factory :stop_area, :parent => commercial_stop_point1, :area_type => "Quay"
343
- access_link1 = Factory :access_link, :stop_area => subject, :access_point => access_point1
344
- access_link2 = Factory :access_link, :stop_area => subject, :access_point => access_point2
345
- subject.save
346
- subject.access_links.size.should == 2
347
- subject.parent=commercial_stop_point2
348
- subject.save
349
- subject.reload
350
- subject.access_links.size.should == 1
351
- end
352
- end
353
-
354
- end
@@ -1,39 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Chouette::StopPoint do
4
- let!(:vehicle_journey) { Factory(:vehicle_journey)}
5
- subject { Chouette::Route.find( vehicle_journey.route_id).stop_points.first }
6
-
7
- it { should validate_uniqueness_of :objectid }
8
- it { should validate_presence_of :stop_area }
9
- it { should validate_presence_of :route }
10
-
11
- its(:objectid) { should be_kind_of(Chouette::ObjectId) }
12
-
13
- describe "#destroy" do
14
- before(:each) do
15
- @vehicle = Factory(:vehicle_journey)
16
- @stop_point = Chouette::Route.find( @vehicle.route_id).stop_points.first
17
- end
18
- def vjas_stop_point_ids( vehicle_id)
19
- Chouette::VehicleJourney.find( vehicle_id).vehicle_journey_at_stops.map(&:stop_point_id)
20
- end
21
- def jpsp_stop_point_ids( journey_id)
22
- Chouette::JourneyPattern.find( journey_id).stop_points.map(&:id)
23
- end
24
- it "should remove dependent vehicle_journey_at_stop" do
25
- vjas_stop_point_ids(@vehicle.id).should include(@stop_point.id)
26
-
27
- @stop_point.destroy
28
-
29
- vjas_stop_point_ids(@vehicle.id).should_not include(@stop_point.id)
30
- end
31
- it "should remove dependent journey_pattern_stop_point" do
32
- jpsp_stop_point_ids(@vehicle.journey_pattern_id).should include(@stop_point.id)
33
-
34
- @stop_point.destroy
35
-
36
- jpsp_stop_point_ids(@vehicle.journey_pattern_id).should_not include(@stop_point.id)
37
- end
38
- end
39
- end