aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2018-03-15 10:33:31 +0100
committerGitHub2018-03-15 10:33:31 +0100
commit7076c427d18548d7e9f5c87de26a936b73ebe8fd (patch)
treef0e44bfdee41151385284a3f10aaaf8de54e0785
parentec7b83ebc22ea7355d49c4b4fac32ef3104a9622 (diff)
parenta0ec8ae14e87157dd9d540f1e2b0f9f7fdc2cfed (diff)
downloadchouette-core-7076c427d18548d7e9f5c87de26a936b73ebe8fd.tar.bz2
Merge pull request #375 from af83/6040-fix-stop-points-poitions-in-merged-routes
Enforce stop points positions in merged Referential. Refs #6040
-rw-r--r--app/models/merge.rb1
-rw-r--r--spec/models/merge_spec.rb18
2 files changed, 18 insertions, 1 deletions
diff --git a/app/models/merge.rb b/app/models/merge.rb
index d42d882ac..e72c794fe 100644
--- a/app/models/merge.rb
+++ b/app/models/merge.rb
@@ -159,7 +159,6 @@ class Merge < ActiveRecord::Base
route_id: nil,
objectid: objectid,
)
-
new_route.stop_points.build attributes
end
diff --git a/spec/models/merge_spec.rb b/spec/models/merge_spec.rb
index 92f8f74b1..95181a80e 100644
--- a/spec/models/merge_spec.rb
+++ b/spec/models/merge_spec.rb
@@ -20,6 +20,7 @@ RSpec.describe Merge do
metadatas: [referential_metadata]
factor = 1
+ stop_points_positions = {}
referential.switch do
line_referential.lines.each do |line|
@@ -30,12 +31,17 @@ RSpec.describe Merge do
end
referential.routes.each do |route|
+ route.stop_points.each do |sp|
+ sp.set_list_position 0
+ end
+ route.reload.update_checksum!
factor.times do
FactoryGirl.create :journey_pattern, route: route, stop_points: route.stop_points.sample(3)
end
end
referential.journey_patterns.each do |journey_pattern|
+ stop_points_positions[journey_pattern.name] = Hash[*journey_pattern.stop_points.map{|sp| [sp.stop_area_id, sp.position]}.flatten]
factor.times do
FactoryGirl.create :vehicle_journey, journey_pattern: journey_pattern, company: company
end
@@ -53,6 +59,18 @@ RSpec.describe Merge do
merge = Merge.create!(workbench: referential.workbench, referentials: [referential, referential])
merge.merge!
+
+ output = merge.output.current
+ output.switch
+
+ # Let's check stop_point positions are respected
+ # This should be enforced by the checksum preservation though
+ output.journey_patterns.each do |journey_pattern|
+ journey_pattern.stop_points.each do |sp|
+ expect(sp.position).to eq stop_points_positions[journey_pattern.name][sp.stop_area_id]
+ end
+ end
+
end
end