|
308 | 308 | dates.should == [start_time + IceCube::ONE_DAY * 2, start_time + IceCube::ONE_DAY * 3, start_time + IceCube::ONE_DAY * 4]
|
309 | 309 | end
|
310 | 310 |
|
311 |
| - it 'should use start date on a bi-weekly recurrence pattern to find the occurrences_between when interval > 1' do |
312 |
| - start_time = Time.local(2011, 3, 20) |
313 |
| - |
314 |
| - schedule = IceCube::Schedule.new(start_time) |
315 |
| - schedule.add_recurrence_rule IceCube::Rule.weekly(2).day(:sunday) |
| 311 | + describe "using occurs_between with a biweekly schedule" do |
| 312 | + [[0, 1, 2], [0, 6, 1], [5, 1, 6], [6, 5, 7]].each do |wday, offset, lead| |
| 313 | + start_week = Time.utc(2014, 1, 5) |
| 314 | + expected_week = start_week + 2.weeks |
| 315 | + offset_wday = (wday + offset) % 7 |
| 316 | + |
| 317 | + context "starting on weekday #{wday} selecting weekday #{offset} with a #{lead} day advance window" do |
| 318 | + let(:biweekly) { Rule.weekly(2).day(0, 1, 2, 3, 4, 5, 6) } |
| 319 | + let(:schedule) { Schedule.new(start_week + wday.days) { |s| s.rrule biweekly } } |
| 320 | + let(:expected_date) { expected_week + offset_wday.days } |
| 321 | + let(:range) { [expected_date - lead.days, expected_date] } |
| 322 | + |
| 323 | + it "should include weekday #{offset_wday} of the expected week" do |
| 324 | + expect(schedule.occurrences_between(range.first, range.last)).to include expected_date |
| 325 | + end |
| 326 | + end |
316 | 327 |
|
317 |
| - occurrences = schedule.occurrences_between(Time.local(2012, 7, 7), Time.local(2012, 7, 9)) |
318 |
| - occurrences.should == [Time.local(2012, 7, 8)] |
| 328 | + end |
319 | 329 | end
|
320 | 330 |
|
321 | 331 | it 'should be able to tell us when there is at least one occurrence between two dates' do
|
|
0 commit comments