aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2017-05-12 14:38:18 +0200
committerXinhui2017-05-12 14:38:23 +0200
commit2ab2023f3a4922857b2343cbd67049b3ec8f8c9c (patch)
treecc9227cafa6bd4778e78979d576c1f3997455c83
parent012a2e5cdcf62d60325a951929850b4e08b24530 (diff)
downloadchouette-core-2ab2023f3a4922857b2343cbd67049b3ec8f8c9c.tar.bz2
Refactoring spec time_table disjoin
Refs #3303
-rw-r--r--app/models/chouette/time_table.rb3
-rw-r--r--spec/models/chouette/time_table_spec.rb67
2 files changed, 42 insertions, 28 deletions
diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb
index 60684411a..41effe3eb 100644
--- a/app/models/chouette/time_table.rb
+++ b/app/models/chouette/time_table.rb
@@ -495,6 +495,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
add_included_day d
end
end
+ self.convert_continuous_dates_to_periods
end
# if remained excluded dates are valid in other tt , remove it from result
self.dates.each do |date|
@@ -528,6 +529,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
self.dates.to_a.sort! { |a,b| a.date <=> b.date}
self.save!
end
+ self.convert_continuous_dates_to_periods
end
@@ -546,6 +548,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
self.periods.to_a.sort! { |a,b| a.period_start <=> b.period_start}
self.save!
end
+ self.convert_continuous_dates_to_periods
end
def duplicate
diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb
index 1d0fa8585..505ca12be 100644
--- a/spec/models/chouette/time_table_spec.rb
+++ b/spec/models/chouette/time_table_spec.rb
@@ -1198,6 +1198,7 @@ end
expect(subject.dates[2].date).to eq(Date.new(2014,7,20))
end
end
+
context "timetable with dates against timetable with dates and periods all covered" do
before do
subject.periods.clear
@@ -1218,12 +1219,15 @@ end
subject.disjoin! another_tt
subject.reload
end
+
it "should have 0 result periods" do
expect(subject.periods.size).to eq(0)
end
+
it "should have no remained day_types" do
subject.int_day_types == 0
end
+
it "should have 0 dates left" do
expect(subject.dates.size).to eq(0)
end
@@ -1243,12 +1247,15 @@ end
subject.disjoin! another_tt
subject.reload
end
+
it "should have 0 result periods" do
expect(subject.periods.size).to eq(0)
end
+
it "should have 0 day_types" do
expect(subject.int_day_types).to eq(0)
end
+
it "should have 6 dates " do
expect(subject.dates.size).to eq(6)
expect(subject.dates[0].date).to eq(Date.new(2014,8,11))
@@ -1274,24 +1281,26 @@ end
subject.disjoin! another_tt
subject.reload
end
- it "should have 0 result periods" do
- expect(subject.periods.size).to eq(0)
+
+ it "should have 3 result periods" do
+ expect(subject.periods.size).to eq(3)
+ [
+ ['2014-08-11', '2014-08-13'],
+ ['2014-08-18', '2014-08-20'],
+ ['2014-08-25', '2014-08-27']
+ ].each_with_index do |period, index|
+ expect(subject.periods[index].period_start.to_s).to eq(period[0])
+ expect(subject.periods[index].period_end.to_s).to eq(period[1])
+ end
end
+
it "should have 0 day_types" do
expect(subject.int_day_types).to eq(0)
end
- it "should have 10 dates " do
- expect(subject.dates.size).to eq(10)
- expect(subject.dates[0].date).to eq(Date.new(2014,8,6))
- expect(subject.dates[1].date).to eq(Date.new(2014,8,11))
- expect(subject.dates[2].date).to eq(Date.new(2014,8,12))
- expect(subject.dates[3].date).to eq(Date.new(2014,8,13))
- expect(subject.dates[4].date).to eq(Date.new(2014,8,18))
- expect(subject.dates[5].date).to eq(Date.new(2014,8,19))
- expect(subject.dates[6].date).to eq(Date.new(2014,8,20))
- expect(subject.dates[7].date).to eq(Date.new(2014,8,25))
- expect(subject.dates[8].date).to eq(Date.new(2014,8,26))
- expect(subject.dates[9].date).to eq(Date.new(2014,8,27))
+
+ it "should have 1 dates " do
+ expect(subject.dates.size).to eq(1)
+ expect(subject.dates.first.date.to_s).to eq('2014-08-06')
end
end
@@ -1311,24 +1320,26 @@ end
subject.disjoin! another_tt
subject.reload
end
- it "should have same 0 result periods" do
- expect(subject.periods.size).to eq(0)
+
+ it "should have same 3 result periods" do
+ expect(subject.periods.size).to eq(3)
+ [
+ ['2014-08-11', '2014-08-13'],
+ ['2014-08-18', '2014-08-20'],
+ ['2014-08-25', '2014-08-27']
+ ].each_with_index do |period, index|
+ expect(subject.periods[index].period_start.to_s).to eq(period[0])
+ expect(subject.periods[index].period_end.to_s).to eq(period[1])
+ end
end
+
it "should have 0 day_types" do
expect(subject.int_day_types).to eq(0)
end
- it "should have only 10 dates " do
- expect(subject.dates.size).to eq(10)
- expect(subject.dates[0].date).to eq(Date.new(2014,8,6))
- expect(subject.dates[1].date).to eq(Date.new(2014,8,11))
- expect(subject.dates[2].date).to eq(Date.new(2014,8,12))
- expect(subject.dates[3].date).to eq(Date.new(2014,8,13))
- expect(subject.dates[4].date).to eq(Date.new(2014,8,18))
- expect(subject.dates[5].date).to eq(Date.new(2014,8,19))
- expect(subject.dates[6].date).to eq(Date.new(2014,8,20))
- expect(subject.dates[7].date).to eq(Date.new(2014,8,25))
- expect(subject.dates[8].date).to eq(Date.new(2014,8,26))
- expect(subject.dates[9].date).to eq(Date.new(2014,8,27))
+
+ it "should have only 1 dates " do
+ expect(subject.dates.size).to eq(1)
+ expect(subject.dates.first.date.to_s).to eq('2014-08-06')
end
end