diff options
| author | Luc Donnet | 2014-06-25 16:34:19 +0200 |
|---|---|---|
| committer | Luc Donnet | 2014-06-25 16:34:19 +0200 |
| commit | 0449133dc118c1859511b23c02743bcf08dc7359 (patch) | |
| tree | c98e7831c160ee5837b216b3536a169a7830b425 /spec/models | |
| parent | 3988cf436bd2a751b3f229eaeebe0e2f371f6774 (diff) | |
| download | chouette-core-0449133dc118c1859511b23c02743bcf08dc7359.tar.bz2 | |
Refactoring layout 2nd part Refs #0026847
Diffstat (limited to 'spec/models')
| -rw-r--r-- | spec/models/vehicle_journey_import_spec.rb (renamed from spec/models/vehicle_journey_importer_spec.rb) | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/spec/models/vehicle_journey_importer_spec.rb b/spec/models/vehicle_journey_import_spec.rb index cb8785586..c9053664b 100644 --- a/spec/models/vehicle_journey_importer_spec.rb +++ b/spec/models/vehicle_journey_import_spec.rb @@ -3,17 +3,18 @@ require 'spec_helper' describe VehicleJourneyImport do - let(:file) { File.open(Rails.root.join("spec", "fixtures", "vehicle_journey_imports_valid.csv").to_s, "r") } + let(:csv_file) { File.open(Rails.root.join("spec", "fixtures", "vehicle_journey_imports_valid.csv").to_s, "r") } + let(:csv_file_upload) { mock("CSV", :tempfile => csv_file, :original_filename => File.basename(csv_file), :path => File.path(csv_file) ) } let!(:route) { create(:route) } let!(:other_route) { create(:route) } - let!(:journey_pattern) { create(:journey_pattern, :route_id => route.id) } - let!(:other_journey_pattern) { create(:journey_pattern, :route_id => route.id) } + let!(:journey_pattern) { create(:journey_pattern_common, :route => route) } + let!(:other_journey_pattern) { create(:journey_pattern_common, :route => route) } - let!(:vehicle_journey1) { create(:vehicle_journey, :objectid => "vehicle_journey_1", :route_id => route.id, :journey_pattern_id => journey_pattern.id) } - let!(:vehicle_journey2) { create(:vehicle_journey, :objectid => "vehicle_journey_2", :route_id => route.id, :journey_pattern_id => other_journey_pattern.id) } - let!(:vehicle_journey3) { create(:vehicle_journey, :objectid => "vehicle_journey_3", :route_id => route.id, :journey_pattern_id => journey_pattern.id) } + let!(:vehicle_journey1) { create(:vehicle_journey, :objectid => "import:VehicleJourney:1", :route_id => route.id, :journey_pattern_id => journey_pattern.id) } + let!(:vehicle_journey2) { create(:vehicle_journey, :objectid => "import:VehicleJourney:2", :route_id => route.id, :journey_pattern_id => other_journey_pattern.id) } + let!(:vehicle_journey3) { create(:vehicle_journey, :objectid => "import:VehicleJourney:3", :route_id => route.id, :journey_pattern_id => journey_pattern.id) } let!(:stop_area1) { create(:stop_area, :name => "ArrĂȘt 1") } let!(:stop_area2) { create(:stop_area, :name => "ArrĂȘt 2") } @@ -25,12 +26,13 @@ describe VehicleJourneyImport do let!(:stop_point3) { create(:stop_point, :id => 3, :stop_area => stop_area3) } let!(:stop_point4) { create(:stop_point, :id => 4, :stop_area => stop_area4) } - subject { VehicleJourneyImport.new(:route => route, :file => file) } + subject { VehicleJourneyImport.new(:route => route, :file => csv_file_upload) } before :each do - route.stop_points = [stop_point1, stop_point2, stop_point3, stop_point4] - journey_pattern.stop_points = [stop_point1, stop_point2, stop_point3, stop_point4] - other_journey_pattern.stop_points = [stop_point1, stop_point3, stop_point4] + route.stop_points.destroy_all + route.stop_points << [stop_point1, stop_point2, stop_point3, stop_point4] + journey_pattern.stop_points << [stop_point1, stop_point2, stop_point3, stop_point4] + other_journey_pattern.stop_points << [stop_point1, stop_point3, stop_point4] end describe ".save" do @@ -40,11 +42,11 @@ describe VehicleJourneyImport do end it "should validate presence of file" do - expect(VehicleJourneyImport.new(:file => file).save).to be_false + expect(VehicleJourneyImport.new(:file => csv_file_upload).save).to be_false end it "should import vehicle_journeys and create the right number of objects" do - expect(VehicleJourneyImport.new(:file => file, :route => route).save).to be_true + expect(VehicleJourneyImport.new(:file => csv_file_upload, :route => route).save).to be_true end end @@ -67,29 +69,46 @@ describe VehicleJourneyImport do describe ".load_imported_vehicle_journeys" do it "should return false when stop points in file are not the same in the route" do - expect(VehicleJourneyImport.new(:route => other_route, :file => file).load_imported_vehicle_journeys).to eq([]) + vehicle_journey_import = VehicleJourneyImport.new(:route => other_route, :file => csv_file_upload) + vehicle_journey_import.load_imported_vehicle_journeys + + expect(vehicle_journey_import.errors.messages).not_to be_empty expect(Chouette::VehicleJourney.all.size).to eq(3) - expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0) + expect(Chouette::VehicleJourneyAtStop.all.size).to eq(11) end it "should return false when vehicle journeys in file are invalid" do invalid_file = File.open(Rails.root.join("spec", "fixtures", "vehicle_journey_imports_with_vj_invalid.csv").to_s, "r") - expect(VehicleJourneyImport.new(:route => other_route, :file => invalid_file).load_imported_vehicle_journeys).to eq([]) + invalid_csv_file_upload = mock("CSV", :tempfile => invalid_file, :original_filename => File.basename(invalid_file), :path => File.path(invalid_file) ) + + vehicle_journey_import = VehicleJourneyImport.new(:route => other_route, :file => invalid_csv_file_upload) + vehicle_journey_import.load_imported_vehicle_journeys + puts "vehicle_journey_import.errors #{vehicle_journey_import.errors.methods.inspect}" + + expect(vehicle_journey_import.errors.messages).not_to be_empty expect(Chouette::VehicleJourney.all.size).to eq(3) - expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0) + expect(Chouette::VehicleJourneyAtStop.all.size).to eq(11) end it "should return false when vehicle journey at stops in file are invalid" do invalid_file = File.open(Rails.root.join("spec", "fixtures", "vehicle_journey_imports_with_vjas_invalid.csv").to_s, "r") - expect(VehicleJourneyImport.new(:route => other_route, :file => invalid_file).load_imported_vehicle_journeys).to eq([]) + invalid_csv_file_upload = mock("CSV", :tempfile => invalid_file, :original_filename => File.basename(invalid_file), :path => File.path(invalid_file) ) + + vehicle_journey_import = VehicleJourneyImport.new(:route => other_route, :file => invalid_csv_file_upload) + vehicle_journey_import.load_imported_vehicle_journeys + + expect(vehicle_journey_import.errors.messages).not_to be_empty expect(Chouette::VehicleJourney.all.size).to eq(3) - expect(Chouette::VehicleJourneyAtStop.all.size).to eq(0) + expect(Chouette::VehicleJourneyAtStop.all.size).to eq(11) end it "should load vehicle journeys" do - expect(subject.load_imported_vehicle_journeys.size).to eq(3) - expect(Chouette::VehicleJourney.all.collect(&:objectid)).to match_array([vehicle_journey1.objectid, vehicle_journey2.objectid, vehicle_journey3.objectid]) - expect(Chouette::VehicleJourneyAtStop.all.size).to eq(11) + subject.load_imported_vehicle_journeys + + expect(subject.errors.collect(&:messages)).to eq([]) + expect(Chouette::VehicleJourney.all.size).to eq(4) + expect(Chouette::VehicleJourney.all.collect(&:objectid)).to include(vehicle_journey1.objectid, vehicle_journey2.objectid, vehicle_journey3.objectid) + expect(Chouette::VehicleJourneyAtStop.all.size).to eq(15) end end |
