aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models
diff options
context:
space:
mode:
authorLuc Donnet2014-06-25 16:34:19 +0200
committerLuc Donnet2014-06-25 16:34:19 +0200
commit0449133dc118c1859511b23c02743bcf08dc7359 (patch)
treec98e7831c160ee5837b216b3536a169a7830b425 /spec/models
parent3988cf436bd2a751b3f229eaeebe0e2f371f6774 (diff)
downloadchouette-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