diff options
| -rw-r--r-- | app/models/vehicle_journey_import.rb | 9 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_valid.csv | 10 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv | 2 | ||||
| -rw-r--r-- | spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv | 3 | ||||
| -rw-r--r-- | spec/models/vehicle_journey_import_spec.rb | 24 | 
5 files changed, 24 insertions, 24 deletions
| diff --git a/app/models/vehicle_journey_import.rb b/app/models/vehicle_journey_import.rb index e581435a0..11f142309 100644 --- a/app/models/vehicle_journey_import.rb +++ b/app/models/vehicle_journey_import.rb @@ -55,6 +55,7 @@ class VehicleJourneyImport    def load_imported_vehicle_journeys      spreadsheet = open_spreadsheet(file)      vehicle_journeys = [] +    vehicle_journey_at_stops = []      first_column = spreadsheet.column(1)      stop_point_ids = first_column[1..spreadsheet.last_row].map(&:to_i) @@ -80,8 +81,8 @@ class VehicleJourneyImport              begin                 main_time = Time.parse(value)                if main_time.present? -                vjas = Chouette::VehicleJourneyAtStop.where(:stop_point_id => key, :vehicle_journey_id => vehicle_journey.id).first_or_initialize(:departure_time => main_time, :arrival_time => main_time) -                vehicle_journey.vehicle_journey_at_stops << vjas +                vjas = { :stop_point_id => key, :vehicle_journey_id => vehicle_journey.id, :departure_time => main_time, :arrival_time => main_time } #Chouette::VehicleJourneyAtStop.where(:stop_point_id => key, :vehicle_journey_id => vehicle_journey.id).first_or_initialize(:departure_time => main_time, :arrival_time => main_time) +                vehicle_journey_at_stops << vjas                end              rescue Exception => exception                errors.add :base, I18n.t("vehicle_journey_imports.errors.invalid_vehicle_journey_at_stop", :column => i, :line => line, :time => value) @@ -89,12 +90,14 @@ class VehicleJourneyImport              end            end                   end -         +        vehicle_journey.vehicle_journey_at_stops_attributes = vehicle_journey_at_stops          vehicle_journeys << vehicle_journey        end      end      vehicle_journeys +    puts vehicle_journeys.inspect +    vehicle_journeys    end    def open_spreadsheet(file) diff --git a/spec/fixtures/vehicle_journey_imports_valid.csv b/spec/fixtures/vehicle_journey_imports_valid.csv index 3ec32f77a..b20d58ab5 100644 --- a/spec/fixtures/vehicle_journey_imports_valid.csv +++ b/spec/fixtures/vehicle_journey_imports_valid.csv @@ -1,6 +1,6 @@  "stop area id","stop area name","import:VehicleJourney:1","import:VehicleJourney:2","import:VehicleJourney:3","" -1,"Arrêt 1","9:00:00","10:05:00","11:10:00","12:10:00" -2,"Arrêt 2","9:05:00",,"11:15:00","12:15:00" -3,"Arrêt 3","9:10:00","10:20:00","11:20:00","12:20:00" -4,"Arrêt 4","9:15:00","10:25:00","11:25:00","12:25:00" -5,"Arrêt 5","9:20:00","10:30:00","11:30:00","12:30:00" +1,"Arrêt 1","9:00:00",,"11:10:00","12:10:00" +2,"Arrêt 2","9:05:00","10:05:00","11:15:00","12:15:00" +3,"Arrêt 3","9:10:00",,"11:20:00","12:20:00" +4,"Arrêt 4","9:15:00","10:20:00","11:25:00","12:25:00" +5,"Arrêt 5","9:20:00",,"11:30:00","12:30:00" diff --git a/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv b/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv index 8a7f26c21..1b7aeb731 100644 --- a/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv +++ b/spec/fixtures/vehicle_journey_imports_with_vj_invalid.csv @@ -2,5 +2,5 @@  1,"Arrêt 1","9:00:00","10:05:00","11:10:00"  2,"Arrêt 2","11:05:00",,"11:15:00"  3,"Arrêt 3","11:10:00","10:20:00","11:20:00" -4,"Arrêt 4","11:15:00","10:25:00","11:25:00" +4,"Arrêt 4","11:15:00",,"11:25:00"  5,"Arrêt 5","9:20:00","10:30:00","11:30:00" diff --git a/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv b/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv index 055971b3e..c5e9e32b1 100644 --- a/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv +++ b/spec/fixtures/vehicle_journey_imports_with_vjas_invalid.csv @@ -2,4 +2,5 @@  1,"Arrêt 1",invalid time,"10:05:00","11:10:00"  2,"Arrêt 2","9:05:00",,"11:15:00"  3,"Arrêt 3","9:10:00","10:20:00","11:20:00" -4,"Arrêt 4","9:15:00","10:25:00","11:25:00" +4,"Arrêt 4","9:15:00",,"11:25:00" +5,"Arrêt 5","9:20:00","10:30:00","11:30:00" diff --git a/spec/models/vehicle_journey_import_spec.rb b/spec/models/vehicle_journey_import_spec.rb index 819e001f2..7a2b94208 100644 --- a/spec/models/vehicle_journey_import_spec.rb +++ b/spec/models/vehicle_journey_import_spec.rb @@ -24,7 +24,7 @@ describe VehicleJourneyImport do    let!(:other_route) { create(:route) }    let!(:journey_pattern) { create(:journey_pattern, :route => route) } -  let!(:other_journey_pattern) { create(:journey_pattern_common, :route => route) } +  let!(:other_journey_pattern) { create(:journey_pattern_even, :route => route) }    let!(:vehicle_journey1) { create(:vehicle_journey_common, :objectid => "import:VehicleJourney:1", :route_id => route.id, :journey_pattern_id => journey_pattern.id) }    let!(:vehicle_journey2) { create(:vehicle_journey_common, :objectid => "import:VehicleJourney:2", :route_id => route.id, :journey_pattern_id => other_journey_pattern.id) } @@ -58,12 +58,7 @@ describe VehicleJourneyImport do      mock("CSV", :tempfile => csv_file, :original_filename => File.basename(csv_file), :path => File.path(csv_file) )    } -  subject { VehicleJourneyImport.new(:route => route, :file => valid_file) } - -  before :each do -    other_journey_pattern.stop_points << [stop_point0, stop_point2, stop_point3, stop_point4] -  end -   +  subject { VehicleJourneyImport.new(:route => route, :file => valid_file) }     describe ".save" do @@ -78,15 +73,16 @@ describe VehicleJourneyImport do      it "should import vehicle_journeys and create the right number of objects" do        expect(VehicleJourneyImport.new(:file => valid_file, :route => route).save).to be_true        expect(Chouette::VehicleJourney.all.size).to eq(4) +      puts Chouette::VehicleJourneyAtStop.all.inspect        expect(Chouette::VehicleJourneyAtStop.all.size).to eq(19)      end -    it "should not import vehicle_journeys and not create objects when vehicle journey at stops are not in ascendant order" #do       -    #   expect(VehicleJourneyImport.new(:route => route, :file => invalid_file_on_vjas_object).save).to be_false -    #   expect(Chouette::VehicleJourney.all.size).to eq(3) -    #   puts Chouette::VehicleJourneyAtStop.all.inspect -    #   expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0) -    # end +    it "should not import vehicle_journeys and not create objects when vehicle journey at stops are not in ascendant order" do       +      expect(VehicleJourneyImport.new(:route => route, :file => invalid_file_on_vjas_object).save).to be_false +      expect(Chouette::VehicleJourney.all.size).to eq(3) +      puts Chouette::VehicleJourneyAtStop.all.inspect +      expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0) +    end      # it "should not import vehicle_journeys and not create objects with invalid file" do      #   expect(VehicleJourneyImport.new(:file => invalid_file_on_vj, :route => route).save).to be_false @@ -100,7 +96,7 @@ describe VehicleJourneyImport do      it "should return journey pattern with same stop points" do                  expect(subject.find_journey_pattern_schedule( { stop_point0.id => "9:00", stop_point1.id => "9:05", stop_point2.id => "9:10", stop_point3.id => "9:15", stop_point4.id => "9:20"} )).to eq(journey_pattern) -      expect(subject.find_journey_pattern_schedule( { stop_point0.id => "9:00", stop_point2.id => "9:10", stop_point3.id => "9:15", stop_point4.id => "9:20"} )).to eq(other_journey_pattern) +      expect(subject.find_journey_pattern_schedule( { stop_point1.id => "9:00", stop_point3.id => "9:10" } )).to eq(other_journey_pattern)      end      it "should return new journey_pattern if no journey pattern with same stop points is founded" do       | 
