woocommerceSegment = $this->createMock(WooCommerceSegment::class); $this->woocommerceHelper = $this->createMock(WooCommerceHelper::class); $this->worker = new WooCommerceSync($this->woocommerceSegment, $this->woocommerceHelper); } public function testItWillNotRunIfWooCommerceIsDisabled() { $this->woocommerceHelper->method('isWooCommerceActive') ->willReturn(false); expect($this->worker->checkProcessingRequirements())->false(); } public function testItWillRunIfWooCommerceIsEnabled() { $this->woocommerceHelper->method('isWooCommerceActive') ->willReturn(true); expect($this->worker->checkProcessingRequirements())->true(); } public function testItCallsWooCommerceSync() { $this->woocommerceSegment->expects($this->once()) ->method('synchronizeCustomers'); $task = $this->createScheduledTask(); expect($this->worker->processTaskStrategy($task, microtime(true)))->equals(true); } private function createScheduledTask() { $task = ScheduledTask::create(); $task->type = WooCommerceSync::TASK_TYPE; $task->status = null; $task->scheduledAt = Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')); $task->save(); return $task; } public function _after() { ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); } }