aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorAlban Peignier2017-12-27 21:27:03 +0100
committerAlban Peignier2018-01-05 10:23:29 +0100
commit8dada2909f01e4e8fe1eb85e88b7ac4562446521 (patch)
tree865f3676ae734526514dd399b42483c70a13a7d0 /spec
parente753538fbff071f146fbf93dc0dfced5e6405684 (diff)
downloadchouette-core-8dada2909f01e4e8fe1eb85e88b7ac4562446521.tar.bz2
Add TimeTable##intersect_periods! to remove given periods. Refs #5299
Diffstat (limited to 'spec')
-rw-r--r--spec/models/chouette/time_table_spec.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb
index 677308fc8..8f50bd1d5 100644
--- a/spec/models/chouette/time_table_spec.rb
+++ b/spec/models/chouette/time_table_spec.rb
@@ -1187,4 +1187,48 @@ end
expect(subject.tag_list.size).to eq(2)
end
end
+
+ describe "#intersect_periods!" do
+ let(:time_table) { Chouette::TimeTable.new }
+ let(:periods) do
+ [
+ Date.new(2018, 1, 1)..Date.new(2018, 2, 1),
+ ]
+ end
+
+ it "remove a date not included in given periods" do
+ time_table.dates.build date: Date.new(2017,12,31)
+ time_table.intersect_periods! periods
+ expect(time_table.dates).to be_empty
+ end
+
+ it "keep a date included in given periods" do
+ time_table.dates.build date: Date.new(2018,1,15)
+ expect{time_table.intersect_periods! periods}.to_not change(time_table, :dates)
+ end
+
+ it "remove a period not included in given periods" do
+ time_table.periods.build period_start: Date.new(2017,12,1), period_end: Date.new(2017,12,31)
+ time_table.intersect_periods! periods
+ expect(time_table.periods).to be_empty
+ end
+
+ it "modify a start period if not included in given periods" do
+ period = time_table.periods.build period_start: Date.new(2017,12,1), period_end: Date.new(2018,1,15)
+ time_table.intersect_periods! periods
+ expect(period.period_start).to eq(Date.new(2018, 1, 1))
+ end
+
+ it "modify a end period if not included in given periods" do
+ period = time_table.periods.build period_start: Date.new(2018,1,15), period_end: Date.new(2018,3,1)
+ time_table.intersect_periods! periods
+ expect(period.period_end).to eq(Date.new(2018, 2, 1))
+ end
+
+ it "keep a period included in given periods" do
+ time_table.periods.build period_start: Date.new(2018,1,10), period_end: Date.new(2018,1,20)
+ expect{time_table.intersect_periods! periods}.to_not change(time_table, :periods)
+ end
+
+ end
end