createMock(OrderStatusChangePayload::class); $statusChangePayload->method('getFrom')->willReturn($from); $statusChangePayload->method('getTo')->willReturn($to); $step = $this->createMock(\MailPoet\Automation\Engine\Data\Step::class); $step->method('getArgs')->willReturn(['from' => $configuredFrom, 'to' => $configuredTo]); $stepRunArgs = $this->createMock(StepRunArgs::class); $stepRunArgs->method('getSinglePayloadByClass')->willReturn($statusChangePayload); $stepRunArgs->method('getStep')->willReturn($step); $testee = $this->diContainer->get(OrderStatusChangedTrigger::class); $this->assertEquals($expected, $testee->isTriggeredBy($stepRunArgs)); } public function dataTestIsTriggeredBy() { return [ 'status_match' => [ 'from' => 'processing', 'to' => 'completed', 'configured_from' => 'wc-processing', 'configured_to' => 'wc-completed', 'expected' => true, ], 'status_match_from_any' => [ 'from' => 'processing', 'to' => 'completed', 'configured_from' => 'any', 'configured_to' => 'wc-completed', 'expected' => true, ], 'status_match_to_any' => [ 'from' => 'processing', 'to' => 'completed', 'configured_from' => 'wc-processing', 'configured_to' => 'any', 'expected' => true, ], 'status_mismatch_from' => [ 'from' => 'on-hold', 'to' => 'completed', 'configured_from' => 'wc-processing', 'configured_to' => 'wc-completed', 'expected' => false, ], 'status_mismatch_to' => [ 'from' => 'processing', 'to' => 'failed', 'configured_from' => 'wc-processing', 'configured_to' => 'wc-completed', 'expected' => false, ], ]; } }