aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2017-07-12 11:48:17 +0200
committerXinhui2017-07-13 17:33:21 +0200
commitf446e30a4cbee93d7472ea3663e20d6553853cab (patch)
tree74c42237343035bf69b45f0b016be05630ec1d2c
parent5742cb48f987ede482b5c4faca6b199f7200eee8 (diff)
downloadchouette-core-f446e30a4cbee93d7472ea3663e20d6553853cab.tar.bz2
VehicleJourneyAtStop implementation of checksum concerns
-rw-r--r--app/models/chouette/time_table_date.rb8
-rw-r--r--app/models/chouette/vehicle_journey_at_stop.rb9
-rw-r--r--spec/factories/chouette_vehicle_journey_at_stop.rb5
-rw-r--r--spec/models/chouette/vehicle_journey_at_stop_spec.rb18
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