diff options
| author | Robert | 2017-06-01 07:21:05 +0200 |
|---|---|---|
| committer | Robert | 2017-06-01 07:21:05 +0200 |
| commit | c5bf17f9c7fd84a43057c76a4a947abcc6b01621 (patch) | |
| tree | 3b6f51b6a3f3ddc1f86a7dc7c797bc4219a42d0d /spec | |
| parent | b6f6bf1d65f961f4ea6c1df91bc1ade9dfa8f7e2 (diff) | |
| parent | a39d78ed314bc2eb1b030cadbbf0b928e36e1927 (diff) | |
| download | chouette-core-c5bf17f9c7fd84a43057c76a4a947abcc6b01621.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/lib/time_duration_spec.rb | 14 | ||||
| -rw-r--r-- | spec/models/chouette/vehicle_journey_at_stops_day_offset_spec.rb | 90 |
2 files changed, 98 insertions, 6 deletions
diff --git a/spec/lib/time_duration_spec.rb b/spec/lib/time_duration_spec.rb index 1cba1f6d5..bf23f7ba6 100644 --- a/spec/lib/time_duration_spec.rb +++ b/spec/lib/time_duration_spec.rb @@ -4,15 +4,17 @@ describe TimeDuration do describe ".exceeds_gap?" do context "when duration is 4.hours" do it "should return false if gap < 1.hour" do - t1 = Time.now - t2 = Time.now + 3.minutes - expect(TimeDuration.exceeds_gap?(4.hours, t1, t2)).to be_falsey + earlier = Time.now + later = Time.now + 3.minutes + + expect(TimeDuration.exceeds_gap?(4.hours, earlier, later)).to be false end it "should return true if gap > 4.hour" do - t1 = Time.now - t2 = Time.now + (4.hours + 1.minutes) - expect(TimeDuration.exceeds_gap?(4.hours, t1, t2)).to be_truthy + earlier = Time.now + later = Time.now + (4.hours + 1.minutes) + + expect(TimeDuration.exceeds_gap?(4.hours, earlier, later)).to be true end it "returns true when `earlier` is later than `later`" do diff --git a/spec/models/chouette/vehicle_journey_at_stops_day_offset_spec.rb b/spec/models/chouette/vehicle_journey_at_stops_day_offset_spec.rb new file mode 100644 index 000000000..69a2d5cb9 --- /dev/null +++ b/spec/models/chouette/vehicle_journey_at_stops_day_offset_spec.rb @@ -0,0 +1,90 @@ +require 'spec_helper' + +describe Chouette::VehicleJourneyAtStop do + describe "#calculate" do + it "increments day offset when departure & arrival are on different sides + of midnight" do + at_stops = [] + [ + ['22:30', '22:35'], + ['23:50', '00:05'], + ['00:30', '00:35'], + ].each do |arrival_time, departure_time| + at_stops << build_stubbed( + :vehicle_journey_at_stop, + arrival_time: arrival_time, + departure_time: departure_time + ) + end + + offsetter = Chouette::VehicleJourneyAtStopsDayOffset.new(at_stops) + + offsetter.calculate! + + expect(at_stops[0].arrival_day_offset).to eq(0) + expect(at_stops[0].departure_day_offset).to eq(0) + + expect(at_stops[1].arrival_day_offset).to eq(0) + expect(at_stops[1].departure_day_offset).to eq(1) + + expect(at_stops[2].arrival_day_offset).to eq(1) + expect(at_stops[2].departure_day_offset).to eq(1) + end + + it "increments day offset when an at_stop passes midnight the next day" do + at_stops = [] + [ + ['22:30', '22:35'], + ['01:02', '01:14'], + ].each do |arrival_time, departure_time| + at_stops << build_stubbed( + :vehicle_journey_at_stop, + arrival_time: arrival_time, + departure_time: departure_time + ) + end + + offsetter = Chouette::VehicleJourneyAtStopsDayOffset.new(at_stops) + + offsetter.calculate! + + expect(at_stops[0].arrival_day_offset).to eq(0) + expect(at_stops[0].departure_day_offset).to eq(0) + + expect(at_stops[1].arrival_day_offset).to eq(1) + expect(at_stops[1].departure_day_offset).to eq(1) + end + + it "increments day offset for multi-day offsets" do + at_stops = [] + [ + ['22:30', '22:35'], + ['01:02', '01:14'], + ['04:30', '04:35'], + ['00:00', '00:04'], + ].each do |arrival_time, departure_time| + at_stops << build_stubbed( + :vehicle_journey_at_stop, + arrival_time: arrival_time, + departure_time: departure_time + ) + end + + offsetter = Chouette::VehicleJourneyAtStopsDayOffset.new(at_stops) + + offsetter.calculate! + + expect(at_stops[0].arrival_day_offset).to eq(0) + expect(at_stops[0].departure_day_offset).to eq(0) + + expect(at_stops[1].arrival_day_offset).to eq(1) + expect(at_stops[1].departure_day_offset).to eq(1) + + expect(at_stops[2].arrival_day_offset).to eq(1) + expect(at_stops[2].departure_day_offset).to eq(1) + + expect(at_stops[3].arrival_day_offset).to eq(2) + expect(at_stops[3].departure_day_offset).to eq(2) + end + end +end |
