aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert2017-05-15 16:37:30 +0200
committerRobert2017-05-15 16:37:30 +0200
commit73a8df07f7e05448d1dd9969539601b128840fb2 (patch)
treebfefbeed28175b68e96bfd28087810d0bc55ae87
parenta0eb6ea4e8f3ae56a691820a50958a4acf92bcb5 (diff)
parent2c32ac2a3372dfaee531734d3cf94f6b522b7c1b (diff)
downloadchouette-core-73a8df07f7e05448d1dd9969539601b128840fb2.tar.bz2
Merge branch 'master' of github.com:af83/stif-boiv
-rw-r--r--app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js3
-rw-r--r--app/controllers/vehicle_journeys_controller.rb31
-rw-r--r--app/helpers/lines_helper.rb14
-rw-r--r--app/models/calendar.rb11
-rw-r--r--app/models/chouette/time_table.rb3
-rw-r--r--app/models/chouette/vehicle_journey.rb38
-rw-r--r--app/views/lines/_filters.html.slim4
-rw-r--r--app/views/vehicle_journeys/show.rabl2
-rw-r--r--spec/factories/chouette_vehicle_journey.rb11
-rw-r--r--spec/models/calendar_spec.rb16
-rw-r--r--spec/models/chouette/time_table_spec.rb67
-rw-r--r--spec/models/chouette/vehicle_journey_spec.rb59
-rw-r--r--spec/models/time_table_combination_spec.rb22
13 files changed, 207 insertions, 74 deletions
diff --git a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
index 6f338f747..c39c81bb1 100644
--- a/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
+++ b/app/assets/javascripts/es6_browserified/vehicle_journeys/components/VehicleJourney.js
@@ -15,6 +15,7 @@ class VehicleJourney extends Component {
bool = true
this.previousCity = sp.stop_area_cityname
}
+
return bool
}
@@ -73,7 +74,7 @@ class VehicleJourney extends Component {
</div>
{this.props.value.vehicle_journey_at_stops.map((vj, i) =>
<div key={i} className='td text-center'>
- <div className={'cellwrap' + (vj.dummy ? ' headlined' : '') + (this.cityNameChecker(vj) ? ' headlined' : '')}>
+ <div className={'cellwrap' + (this.cityNameChecker(vj) ? ' headlined' : '')}>
{this.props.filters.toggleArrivals &&
<div data-headline='Arrivée à'>
<span className={((this.isDisabled(this.props.value.deletable, vj.dummy) || this.props.filters.policy['vehicle_journeys.edit'] == false) ? 'disabled ' : '') + 'input-group time'}>
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index a44a03886..d8cbef478 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -79,11 +79,19 @@ class VehicleJourneysController < ChouetteController
def collection
scope = route.vehicle_journeys.with_stops
- @q = scope.search filtered_ransack_params
+ # Apply departure time range filter
+ if params[:q] &&
+ params[:q][:vehicle_journey_at_stops_departure_time_gteq] &&
+ params[:q][:vehicle_journey_at_stops_departure_time_lteq]
+ scope = scope.where_departure_time_between(
+ params[:q][:vehicle_journey_at_stops_departure_time_gteq],
+ params[:q][:vehicle_journey_at_stops_departure_time_lteq],
+ allow_empty:
+ params[:q][:vehicle_journey_without_departure_time] == 'true'
+ )
+ end
- # Fixme 3358
- # grouping = ransack_periode_filter
- # @q.build_grouping(grouping) if grouping
+ @q = scope.search filtered_ransack_params
@ppage = 20
@vehicle_journeys = @q.result.paginate(:page => params[:page], :per_page => @ppage)
@@ -92,22 +100,9 @@ class VehicleJourneysController < ChouetteController
@vehicle_journeys
end
- def ransack_periode_filter
- if params[:q] && params[:q][:vehicle_journey_at_stops_departure_time_gteq]
- params[:q] = params[:q].reject{|k| params[:q][k] == 'undefined'}
- between = [:departure_time_gteq, :departure_time_lteq].map do |filter|
- "2000-01-01 #{params[:q]["vehicle_journey_at_stops_#{filter}"]}:00 UTC"
- end
- {
- :m => 'or',
- :vehicle_journey_at_stops_departure_time_between => between.join(' to '),
- :vehicle_journey_at_stops_id_null => params[:q][:vehicle_journey_without_departure_time]
- }
- end
- end
-
def filtered_ransack_params
if params[:q]
+ params[:q] = params[:q].reject{|k| params[:q][k] == 'undefined'}
params[:q].except(:vehicle_journey_at_stops_departure_time_gteq, :vehicle_journey_at_stops_departure_time_lteq)
end
end
diff --git a/app/helpers/lines_helper.rb b/app/helpers/lines_helper.rb
index 80073af62..45e6cd939 100644
--- a/app/helpers/lines_helper.rb
+++ b/app/helpers/lines_helper.rb
@@ -5,6 +5,14 @@ module LinesHelper
line.number
end
+ def sorted_transport_submode
+ Chouette::Line.transport_submode.values.sort_by{|m| t("enumerize.line.transport_submode.#{m}") }
+ end
+
+ def sorted_transport_mode
+ Chouette::Line.transport_mode.values.sort_by{|m| t("enumerize.line.transport_mode.#{m}") }
+ end
+
def colors?(line)
line.text_color.present? || line.color.present?
end
@@ -12,15 +20,15 @@ module LinesHelper
def text_color(line)
line.text_color.blank? ? "black" : "##{line.text_color}"
end
-
+
def background_color(line)
line.color.blank? ? "white" : "#"+line.color
end
-
+
def number_style(line)
if colors?(line)
number_style = "color: #{text_color(line)}; background-color: #{background_color(line)};"
- else
+ else
number_style = ""
end
diff --git a/app/models/calendar.rb b/app/models/calendar.rb
index 91a17e853..39e0d6d49 100644
--- a/app/models/calendar.rb
+++ b/app/models/calendar.rb
@@ -19,6 +19,17 @@ class Calendar < ActiveRecord::Base
[:contains_date]
end
+ def convert_to_time_table
+ Chouette::TimeTable.new.tap do |tt|
+ self.dates.each do |d|
+ tt.dates << Chouette::TimeTableDate.new(date: d, in_out: true)
+ end
+ self.date_ranges.each do |p|
+ tt.periods << Chouette::TimeTablePeriod.new(period_start: p.begin, period_end: p.end)
+ end
+ end
+ end
+
class Period
include ActiveAttr::Model
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/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb
index 297e462f0..852139625 100644
--- a/app/models/chouette/vehicle_journey.rb
+++ b/app/models/chouette/vehicle_journey.rb
@@ -51,9 +51,7 @@ module Chouette
at_stops = self.vehicle_journey_at_stops.to_a.dup
(route.stop_points.map(&:id) - at_stops.map(&:stop_point_id)).each do |id|
# Set stop_point id for fake vjas with no departure time yep.
- params = {}
- params[:stop_point_id] = id if journey_pattern.stop_points.map(&:id).include?(id)
- at_stops.insert(route.stop_points.map(&:id).index(id), Chouette::VehicleJourneyAtStop.new(params))
+ at_stops.insert(route.stop_points.map(&:id).index(id), Chouette::VehicleJourneyAtStop.new(stop_point_id: id))
end
at_stops
end
@@ -219,7 +217,39 @@ module Chouette
AND "vehicle_journey_at_stops"."stop_point_id" =
"journey_patterns"."departure_stop_point_id"
')
- .order("vehicle_journey_at_stops.departure_time")
+ .order('"vehicle_journey_at_stops"."departure_time"')
+ end
+
+ # Requires a SELECT DISTINCT and a join with
+ # "vehicle_journey_at_stops".
+ #
+ # Example:
+ # .select('DISTINCT "vehicle_journeys".*')
+ # .joins('
+ # LEFT JOIN "vehicle_journey_at_stops"
+ # ON "vehicle_journey_at_stops"."vehicle_journey_id" =
+ # "vehicle_journeys"."id"
+ # ')
+ # .where_departure_time_between('08:00', '09:45')
+ def self.where_departure_time_between(
+ start_time,
+ end_time,
+ allow_empty: false
+ )
+ self
+ .where(
+ %Q(
+ "vehicle_journey_at_stops"."departure_time" >= ?
+ AND "vehicle_journey_at_stops"."departure_time" < ?
+ #{
+ if allow_empty
+ 'OR "vehicle_journey_at_stops"."id" IS NULL'
+ end
+ }
+ ),
+ "2000-01-01 #{start_time}:00 UTC",
+ "2000-01-01 #{end_time}:00 UTC"
+ )
end
end
diff --git a/app/views/lines/_filters.html.slim b/app/views/lines/_filters.html.slim
index b52aa73e9..a0188f562 100644
--- a/app/views/lines/_filters.html.slim
+++ b/app/views/lines/_filters.html.slim
@@ -17,11 +17,11 @@
.form-group.togglable
= f.label @lines.human_attribute_name(:transport_mode), required: false, class: 'control-label'
- = f.input :transport_mode_eq_any, collection: Chouette::Line.transport_mode.values, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'}
+ = f.input :transport_mode_eq_any, collection: sorted_transport_mode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'}
.form-group.togglable
= f.label @lines.human_attribute_name(:transport_submode), required: false, class: 'control-label'
- = f.input :transport_submode_eq_any, collection: Chouette::Line.transport_submode.values, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_submode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'}
+ = f.input :transport_submode_eq_any, collection: sorted_transport_submode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.line.transport_submode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'}
.actions
= link_to 'Effacer', @workbench, class: 'btn btn-link'
diff --git a/app/views/vehicle_journeys/show.rabl b/app/views/vehicle_journeys/show.rabl
index 7db9b531d..1ef9bc6b5 100644
--- a/app/views/vehicle_journeys/show.rabl
+++ b/app/views/vehicle_journeys/show.rabl
@@ -31,7 +31,7 @@ end
child(:vehicle_journey_at_stops_matrix, :object_root => false) do |vehicle_stops|
node do |vehicle_stop|
- node(:dummy) { !vehicle_stop.stop_point_id? }
+ node(:dummy) { !vehicle_stop.id? }
node(:stop_area_object_id) do
vehicle_stop.stop_point ? vehicle_stop.stop_point.stop_area.objectid : nil
end
diff --git a/spec/factories/chouette_vehicle_journey.rb b/spec/factories/chouette_vehicle_journey.rb
index 9ba660800..452909f23 100644
--- a/spec/factories/chouette_vehicle_journey.rb
+++ b/spec/factories/chouette_vehicle_journey.rb
@@ -11,13 +11,18 @@ FactoryGirl.define do
end
factory :vehicle_journey do
- after(:create) do |vehicle_journey|
+ transient do
+ stop_arrival_time '01:00:00'
+ stop_departure_time '03:00:00'
+ end
+
+ after(:create) do |vehicle_journey, evaluator|
vehicle_journey.journey_pattern.stop_points.each_with_index do |stop_point, index|
vehicle_journey.vehicle_journey_at_stops << create(:vehicle_journey_at_stop,
:vehicle_journey => vehicle_journey,
:stop_point => stop_point,
- :arrival_time => '2000-01-01 01:00:00 UTC',
- :departure_time => '2000-01-01 03:00:00 UTC')
+ :arrival_time => "2000-01-01 #{evaluator.stop_arrival_time} UTC",
+ :departure_time => "2000-01-01 #{evaluator.stop_departure_time} UTC")
end
end
diff --git a/spec/models/calendar_spec.rb b/spec/models/calendar_spec.rb
index 36981961f..33d9676cd 100644
--- a/spec/models/calendar_spec.rb
+++ b/spec/models/calendar_spec.rb
@@ -9,6 +9,18 @@ RSpec.describe Calendar, :type => :model do
it { is_expected.to validate_presence_of(:short_name) }
it { is_expected.to validate_uniqueness_of(:short_name) }
+ describe '#to_time_table' do
+ let(:calendar) { create(:calendar, date_ranges: [Date.today..(Date.today + 1.month)]) }
+
+ it 'should convert calendar to an instance of Chouette::TimeTable' do
+ time_table = calendar.convert_to_time_table
+ expect(time_table).to be_an_instance_of(Chouette::TimeTable)
+ expect(time_table.periods[0].period_start).to eq(calendar.date_ranges[0].begin)
+ expect(time_table.periods[0].period_end).to eq(calendar.date_ranges[0].end)
+ expect(time_table.dates.map(&:date)).to match_array(calendar.dates)
+ end
+ end
+
describe 'validations' do
it 'validates that dates and date_ranges do not overlap' do
calendar = build(:calendar, dates: [Date.today], date_ranges: [Date.today..Date.tomorrow])
@@ -69,7 +81,6 @@ RSpec.describe Calendar, :type => :model do
end
describe 'intersect?' do
-
it 'should detect date in common with other date_ranges' do
november = period(begin: '2016-11-01', end: '2016-11-30')
mid_november_mid_december = period(begin: '2016-11-15', end: '2016-12-15')
@@ -111,7 +122,6 @@ RSpec.describe Calendar, :type => :model do
end
describe 'DateValue' do
-
subject { date_value }
def date_value(attributes = {})
@@ -141,8 +151,6 @@ RSpec.describe Calendar, :type => :model do
end
it { is_expected.to validate_presence_of(:value) }
-
end
-
end
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
diff --git a/spec/models/chouette/vehicle_journey_spec.rb b/spec/models/chouette/vehicle_journey_spec.rb
index b22183ab6..7f2305134 100644
--- a/spec/models/chouette/vehicle_journey_spec.rb
+++ b/spec/models/chouette/vehicle_journey_spec.rb
@@ -197,7 +197,7 @@ describe Chouette::VehicleJourney, :type => :model do
expect(vehicle_journey.reload.vehicle_journey_at_stops).to be_empty
at_stops = vehicle_journey.reload.vehicle_journey_at_stops_matrix
- at_stops.map{|stop| expect(stop.stop_point_id).to be_nil }
+ at_stops.map{|stop| expect(stop.id).to be_nil }
expect(at_stops.count).to eq route.stop_points.count
end
@@ -284,7 +284,7 @@ describe Chouette::VehicleJourney, :type => :model do
first stop that they make" do
journey_missing_stop = create(:vehicle_journey)
journey_early = create(
- :vehicle_journey,
+ :vehicle_journey,
route: journey_missing_stop.route,
journey_pattern: journey_missing_stop.journey_pattern
)
@@ -310,6 +310,61 @@ describe Chouette::VehicleJourney, :type => :model do
end
end
+ describe ".departure_time_between" do
+ it "selects vehicle journeys whose departure times are between the
+ specified range" do
+ journey_early = create(
+ :vehicle_journey,
+ stop_departure_time: '02:00:00'
+ )
+
+ route = journey_early.route
+ journey_pattern = journey_early.journey_pattern
+
+ journey_middle = create(
+ :vehicle_journey,
+ route: route,
+ journey_pattern: journey_pattern,
+ stop_departure_time: '03:00:00'
+ )
+ journey_late = create(
+ :vehicle_journey,
+ route: route,
+ journey_pattern: journey_pattern,
+ stop_departure_time: '04:00:00'
+ )
+
+ expect(route
+ .vehicle_journeys
+ .select('DISTINCT "vehicle_journeys".*')
+ .joins('
+ LEFT JOIN "vehicle_journey_at_stops"
+ ON "vehicle_journey_at_stops"."vehicle_journey_id" =
+ "vehicle_journeys"."id"
+ ')
+ .where_departure_time_between('02:30', '03:30')
+ .to_a
+ ).to eq([journey_middle])
+ end
+
+ it "can include vehicle journeys that have nil stops" do
+ journey = create(:vehicle_journey_empty)
+ route = journey.route
+
+ expect(route
+ .vehicle_journeys
+ .select('DISTINCT "vehicle_journeys".*')
+ .joins('
+ LEFT JOIN "vehicle_journey_at_stops"
+ ON "vehicle_journey_at_stops"."vehicle_journey_id" =
+ "vehicle_journeys"."id"
+ ')
+ .where_departure_time_between('02:30', '03:30', allow_empty: true)
+ .to_a
+ ).to eq([journey])
+ end
+ end
+
subject { create(:vehicle_journey_odd) }
describe "in_relation_to_a_journey_pattern methods" do
let!(:route) { create(:route)}
diff --git a/spec/models/time_table_combination_spec.rb b/spec/models/time_table_combination_spec.rb
index 4c99a14fa..059fe9e81 100644
--- a/spec/models/time_table_combination_spec.rb
+++ b/spec/models/time_table_combination_spec.rb
@@ -54,6 +54,7 @@ describe TimeTableCombination, :type => :model do
subject.combine
source.reload
end
+
it "should add combined to source" do
expect(source.periods.size).to eq(1)
expect(source.periods[0].period_start).to eq(Date.new(2014,8,1))
@@ -78,14 +79,17 @@ describe TimeTableCombination, :type => :model do
subject.combine
source.reload
end
+
it "should intersect combined to source" do
expect(source.int_day_types).to eq(0)
- expect(source.periods.size).to eq(0)
- expect(source.dates.size).to eq(17)
- expect(source.dates[0].date).to eq(Date.new(2014,8,15))
- expect(source.dates[16].date).to eq(Date.new(2014,8,31))
+ expect(source.periods.size).to eq(1)
+ expect(source.dates.size).to eq(0)
+
+ expect(source.periods.first.period_start.to_s).to eq('2014-08-15')
+ expect(source.periods.first.period_end.to_s).to eq('2014-08-31')
end
end
+
context "when operation is disjoin" do
before(:each) do
source.periods.clear
@@ -104,12 +108,14 @@ describe TimeTableCombination, :type => :model do
subject.combine
source.reload
end
+
it "should disjoin combined to source" do
expect(source.int_day_types).to eq(0)
- expect(source.periods.size).to eq(0)
- expect(source.dates.size).to eq(14)
- expect(source.dates[0].date).to eq(Date.new(2014,8,1))
- expect(source.dates[13].date).to eq(Date.new(2014,8,14))
+ expect(source.periods.size).to eq(1)
+ expect(source.dates.size).to eq(0)
+
+ expect(source.periods.first.period_start.to_s).to eq('2014-08-01')
+ expect(source.periods.first.period_end.to_s).to eq('2014-08-14')
end
end
end