diff options
| author | Xinhui | 2017-07-12 11:48:17 +0200 |
|---|---|---|
| committer | Xinhui | 2017-07-13 17:33:21 +0200 |
| commit | f446e30a4cbee93d7472ea3663e20d6553853cab (patch) | |
| tree | 74c42237343035bf69b45f0b016be05630ec1d2c | |
| parent | 5742cb48f987ede482b5c4faca6b199f7200eee8 (diff) | |
| download | chouette-core-f446e30a4cbee93d7472ea3663e20d6553853cab.tar.bz2 | |
VehicleJourneyAtStop implementation of checksum concerns
| -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 |
