diff options
| -rw-r--r-- | app/models/chouette/time_table_date.rb | 8 | ||||
| -rw-r--r-- | app/models/chouette/vehicle_journey_at_stop.rb | 9 | ||||
| -rw-r--r-- | spec/factories/chouette_vehicle_journey_at_stop.rb | 5 | ||||
| -rw-r--r-- | spec/models/chouette/vehicle_journey_at_stop_spec.rb | 18 |
4 files changed, 38 insertions, 2 deletions
diff --git a/app/models/chouette/time_table_date.rb b/app/models/chouette/time_table_date.rb index b881c9a5d..2aa86a14e 100644 --- a/app/models/chouette/time_table_date.rb +++ b/app/models/chouette/time_table_date.rb @@ -1,4 +1,6 @@ class Chouette::TimeTableDate < Chouette::ActiveRecord + include ChecksumSupport + self.primary_key = "id" belongs_to :time_table, inverse_of: :dates acts_as_list :scope => 'time_table_id = #{time_table_id}',:top_of_list => 0 @@ -12,5 +14,11 @@ class Chouette::TimeTableDate < Chouette::ActiveRecord ActiveModel::Name.new Chouette::TimeTableDate, Chouette, "TimeTableDate" end + def checksum_attributes + [].tap do |attrs| + attrs << self.date.to_s + attrs << self.in_out.to_s + end + end end diff --git a/app/models/chouette/vehicle_journey_at_stop.rb b/app/models/chouette/vehicle_journey_at_stop.rb index 4518d09cf..090a3251e 100644 --- a/app/models/chouette/vehicle_journey_at_stop.rb +++ b/app/models/chouette/vehicle_journey_at_stop.rb @@ -25,6 +25,15 @@ module Chouette end end + def checksum_attributes + [].tap do |attrs| + attrs << self.departure_time.try(:to_s, :time) + attrs << self.arrival_time.try(:to_s, :time) + attrs << self.departure_day_offset.to_s + attrs << self.arrival_day_offset.to_s + end + end + after_initialize :set_virtual_attributes def set_virtual_attributes @_destroy = false diff --git a/spec/factories/chouette_vehicle_journey_at_stop.rb b/spec/factories/chouette_vehicle_journey_at_stop.rb index c452a1317..831e347d4 100644 --- a/spec/factories/chouette_vehicle_journey_at_stop.rb +++ b/spec/factories/chouette_vehicle_journey_at_stop.rb @@ -1,8 +1,9 @@ FactoryGirl.define do - factory :vehicle_journey_at_stop, :class => Chouette::VehicleJourneyAtStop do association :vehicle_journey, :factory => :vehicle_journey + departure_day_offset { 0 } + departure_time { Time.now } + arrival_time { Time.now - 1.hour } end - end diff --git a/spec/models/chouette/vehicle_journey_at_stop_spec.rb b/spec/models/chouette/vehicle_journey_at_stop_spec.rb new file mode 100644 index 000000000..e6c6542f0 --- /dev/null +++ b/spec/models/chouette/vehicle_journey_at_stop_spec.rb @@ -0,0 +1,18 @@ +require 'rails_helper' + +RSpec.describe Chouette::VehicleJourneyAtStop, type: :model do + let(:subject) { create(:vehicle_journey_at_stop) } + + context 'checksum' do + it_behaves_like 'checksum support', :vehicle_journey_at_stop + + context '#checksum_attributes' do + it 'should return attributes' do + expected = [subject.departure_time.to_s(:time), subject.arrival_time.to_s(:time)] + expected << subject.departure_day_offset.to_s + expected << subject.arrival_day_offset.to_s + expect(subject.checksum_attributes).to include(*expected) + end + end + end +end |
