diff options
| author | Alban Peignier | 2018-03-15 10:33:31 +0100 |
|---|---|---|
| committer | GitHub | 2018-03-15 10:33:31 +0100 |
| commit | 7076c427d18548d7e9f5c87de26a936b73ebe8fd (patch) | |
| tree | f0e44bfdee41151385284a3f10aaaf8de54e0785 | |
| parent | ec7b83ebc22ea7355d49c4b4fac32ef3104a9622 (diff) | |
| parent | a0ec8ae14e87157dd9d540f1e2b0f9f7fdc2cfed (diff) | |
| download | chouette-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.rb | 1 | ||||
| -rw-r--r-- | spec/models/merge_spec.rb | 18 |
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 |
