function bfox_plan_scheduler_for_post($post_id) { $scheduler = new BfoxPlanScheduler(); $scheduler->setStartDate(bfox_plan_meta('start_date', $post_id)); if ($scheduler->startTime()) { $scheduler->setFrequency(bfox_plan_meta('frequency', $post_id)); $scheduler->setReadingsPerDate(bfox_plan_meta('per_day', $post_id)); $scheduler->setExcludedDates(bfox_plan_meta('excluded_days', $post_id)); } return $scheduler; }
assertArrays($ans, $scheduler->dates()); assertLatest($scheduler, '2011-08-20', '2011-08-20', 'The first date of the month'); assertLatest($scheduler, '2011-09-19', '2011-08-20', 'The last date of the month should still have the old reading from the beginning of the month'); assertLatest($scheduler, '2011-09-20', '2011-09-20', 'The first date of the new month'); $scheduler->setFrequency('weekly'); $scheduler->pushNumDates(4); $ans = array_merge($ans, array('2011-12-20', '2011-12-27', '2012-01-03', '2012-01-10')); assertArrays($ans, $scheduler->dates()); $scheduler->setFrequency('daily'); $scheduler->setDaysOfWeek(array('Sunday', 'Tuesday', 'Fri')); $scheduler->pushNumDates(4); $ans = array_merge($ans, array('2012-01-17', '2012-01-20', '2012-01-22', '2012-01-24')); assertArrays($ans, $scheduler->dates()); assertLatest($scheduler, '2012-01-19', '2012-01-17', 'An excluded day of the week'); assertLatest($scheduler, '2012-01-23', '2012-01-22', 'Another excluded day of the week'); $scheduler->setDaysOfWeek(array('Monday', 'Wednesday')); $scheduler->pushNumDates(3); $ans = array_merge($ans, array('2012-01-25', '2012-01-30', '2012-02-01')); assertArrays($ans, $scheduler->dates()); // New Scheduler for dates around current time $scheduler = new BfoxPlanScheduler(); $scheduler->setStartDate('yesterday'); $scheduler->pushNumDates(4); if (1 != $scheduler->latestDateIndex()) { echo "Error: LatestDateIndex for today is wrong\n"; } else { if ($showSuccess) { echo "Success: LatestDateIndex for today\n"; } } echo "Tests Complete\n";