diff options
| author | Xinhui | 2017-03-10 13:34:56 +0100 |
|---|---|---|
| committer | Xinhui | 2017-03-10 13:34:56 +0100 |
| commit | a5f9cefc354f8907d552831f8ed9eb40e672da26 (patch) | |
| tree | 6a83448739ddd458a912b648016add3d3113ceae | |
| parent | bbeee45fbba338eeb857f9967a3c79519bf499bc (diff) | |
| download | chouette-core-a5f9cefc354f8907d552831f8ed9eb40e672da26.tar.bz2 | |
Refactoring save of vehicle_journey_at_stops arrival, departure_time
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 13 | ||||
| -rw-r--r-- | spec/models/chouette/vehicle_journey_spec.rb | 33 |
2 files changed, 23 insertions, 23 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 9853acafb..40514ff8f 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -61,14 +61,13 @@ module Chouette next if vjas["dummy"] stop = vehicle_journey_at_stops.find(vjas['id']) if vjas['id'] if stop - stop.arrival_time ||= Time.now.beginning_of_day - stop.departure_time ||= Time.now.beginning_of_day - ['arrival_time', 'departure_time'].each do |field| - stop.assign_attributes({ - field.to_sym => stop.send(field).change({ hour: vjas[field]['hour'], min: vjas[field]['minute'] }) - }) + params = {}.tap do |el| + ['arrival_time', 'departure_time'].each do |field| + time = "#{vjas[field]['hour']}:#{vjas[field]['minute']}" + el[field.to_sym] = Time.parse("2000-01-01 #{time}:00 UTC") + end end - stop.save + stop.update_attributes(params) end end end diff --git a/spec/models/chouette/vehicle_journey_spec.rb b/spec/models/chouette/vehicle_journey_spec.rb index a6569d011..be0ebb3b9 100644 --- a/spec/models/chouette/vehicle_journey_spec.rb +++ b/spec/models/chouette/vehicle_journey_spec.rb @@ -26,7 +26,6 @@ describe Chouette::VehicleJourney, :type => :model do let(:route) { create :route } let(:journey_pattern) { create :journey_pattern, route: route } let(:vehicle_journey) { create :vehicle_journey, route: route, journey_pattern: journey_pattern } - let(:state) { vehicle_journey_to_state(vehicle_journey) } describe '.vehicle_journey_at_stops_matrix' do @@ -52,23 +51,27 @@ describe Chouette::VehicleJourney, :type => :model do end it 'should update arrival_time' do - stop = state['vehicle_journey_at_stops'].first - stop['arrival_time']['hour'] = "10" - stop['arrival_time']['minute'] = "10" + item = state['vehicle_journey_at_stops'].first + item['arrival_time']['hour'] = (item['departure_time']['hour'].to_i - 1).to_s + item['arrival_time']['minute'] = Time.now.strftime('%M') vehicle_journey.update_vehicle_journey_at_stops_state(state['vehicle_journey_at_stops']) - stop = vehicle_journey.vehicle_journey_at_stops.find(stop['id']) - expect(stop.arrival_time).to eq('2000-01-01 10:10:00 UTC') + stop = vehicle_journey.vehicle_journey_at_stops.find(item['id']) + + expect(stop.arrival_time.strftime('%H')).to eq item['arrival_time']['hour'] + expect(stop.arrival_time.strftime('%M')).to eq item['arrival_time']['minute'] end it 'should update departure_time' do - stop = state['vehicle_journey_at_stops'].first - stop['departure_time']['hour'] = "12" - stop['departure_time']['minute'] = "12" + item = state['vehicle_journey_at_stops'].first + item['departure_time']['hour'] = (Time.now - 1.hour).strftime('%H') + item['departure_time']['minute'] = (Time.now - 1.hour).strftime('%M') vehicle_journey.update_vehicle_journey_at_stops_state(state['vehicle_journey_at_stops']) - stop = vehicle_journey.vehicle_journey_at_stops.find(stop['id']) - expect(stop.departure_time).to eq('2000-01-01 12:12:00 UTC') + stop = vehicle_journey.vehicle_journey_at_stops.find(item['id']) + + expect(stop.departure_time.strftime('%H')).to eq item['departure_time']['hour'] + expect(stop.departure_time.strftime('%M')).to eq item['departure_time']['minute'] end end @@ -152,8 +155,8 @@ describe Chouette::VehicleJourney, :type => :model do end end end - end + context "when following departure times exceeds gap" do describe "#increasing_times" do before(:each) do @@ -200,6 +203,7 @@ describe Chouette::VehicleJourney, :type => :model do expect(subject.time_tables).to include( tm2) end end + describe "#bounding_dates" do before(:each) do tm1 = build(:time_table, :dates => @@ -217,6 +221,7 @@ describe Chouette::VehicleJourney, :type => :model do expect(subject.bounding_dates.max).to eq(1.days.ago.to_date) end end + context "#vehicle_journey_at_stops" do it "should be ordered like stop_points on route" do route = subject.route @@ -225,7 +230,6 @@ describe Chouette::VehicleJourney, :type => :model do expect(vj_stop_ids).to eq(expected_order) end - end describe "#footnote_ids=" do @@ -242,10 +246,7 @@ describe Chouette::VehicleJourney, :type => :model do subject.save expect(Chouette::VehicleJourney.find(subject.id).footnotes.count).to eq(1) end - end - end - end |
