exportDataHandlerMock = $this->getMockBuilder(ExportDataHandlerInterface::class) ->getMockForAbstractClass(); $this->subscriptionStatusMock = $this->getMockBuilder(SubscriptionStatusProvider::class) ->disableOriginalConstructor() ->getMock(); $this->objectManagerHelper = new ObjectManagerHelper($this); $this->collectData = $this->objectManagerHelper->getObject( CollectData::class, [ 'exportDataHandler' => $this->exportDataHandlerMock, 'subscriptionStatus' => $this->subscriptionStatusMock, ] ); } /** * @param string $status * @return void * @dataProvider executeDataProvider */ public function testExecute($status) { $this->subscriptionStatusMock ->expects($this->once()) ->method('getStatus') ->with() ->willReturn($status); $this->exportDataHandlerMock ->expects(($status === SubscriptionStatusProvider::ENABLED) ? $this->once() : $this->never()) ->method('prepareExportData') ->with(); $this->assertTrue($this->collectData->execute()); } /** * @return array */ public function executeDataProvider() { return [ 'Subscription is enabled' => [SubscriptionStatusProvider::ENABLED], 'Subscription is disabled' => [SubscriptionStatusProvider::DISABLED], ]; } }