/** * Determine if the provided expression refers to this week * * @return bool */ public function thisWeek() { $scheduleWeek = $this->scheduler->getScheduleWeek(); $currentWeek = $this->now->format('W'); //if a month is defined, week refers to the week of the month $scheduleMonth = $this->scheduler->getScheduleMonth(); if (!is_null($scheduleMonth) && $scheduleMonth !== Scheduler::NONE) { return $this->isCurrent($scheduleWeek, $this->now->weekOfMonth); } //if it's an odd or even week if ($scheduleWeek == 'odd' && $currentWeek & 1) { return true; } elseif ($scheduleWeek == 'even' && !($currentWeek & 1)) { return true; } return $this->isCurrent($scheduleWeek, $this->now->weekOfYear); }
public function testOptsWithSpecificEnvironmentSet() { $opts = ['testOpt', 'option' => 'value', 'env' => 'a_fancy_environment']; $expectedOpts = ['testOpt', 'option' => 'value', 'env' => 'a_fancy_environment']; $args = ['testArgument']; /** @var \Indatus\Dispatcher\Drivers\DateTime\Scheduler $scheduler */ $scheduler = $this->scheduler->args($args)->opts($opts)->everyWeekday(); $this->assertInstanceOf($this->schedulerClass, $scheduler); $this->assertEquals($args, $scheduler->getArguments()); $this->assertEquals($expectedOpts, $scheduler->getOptions()); $this->assertNotEquals($scheduler->getSchedule(), $this->defaultSchedule); /** @var \Indatus\Dispatcher\Drivers\DateTime\Scheduler $scheduler */ $scheduler = $this->scheduler->opts($opts)->args($args); $this->assertInstanceOf($this->schedulerClass, $scheduler); $this->assertEquals($args, $scheduler->getArguments()); $this->assertEquals($expectedOpts, $scheduler->getOptions()); //be sure schedule reset, if not then we didn't get a fresh SchedulerClass $this->assertEquals($scheduler->getSchedule(), $this->defaultSchedule); }