/** * @param int|null $productId * @param string $experimentScript * @param string $codeId * @param int $expectedCalls * @return void * @dataProvider getDataGoogleExperimentEnabledDataProvider */ public function testGetDataGoogleExperimentEnabled($productId, $experimentScript, $codeId, $expectedCalls) { $expectedResult[$productId]['google_experiment'] = ['experiment_script' => $experimentScript, 'code_id' => $codeId]; $this->canShowPanel(true); /** @var \Magento\GoogleOptimizer\Model\Code|MockObject $codeModelMock */ $codeModelMock = $this->getMock('Magento\\GoogleOptimizer\\Model\\Code', ['getExperimentScript', 'getCodeId'], [], '', false, false); $codeModelMock->expects($this->exactly($expectedCalls))->method('getExperimentScript')->willReturn($experimentScript); $codeModelMock->expects($this->exactly($expectedCalls))->method('getCodeId')->willReturn($codeId); $this->codeHelperMock->expects($this->exactly($expectedCalls))->method('getCodeObjectByEntity')->with($this->productMock)->willReturn($codeModelMock); $this->productMock->expects($this->atLeastOnce())->method('getId')->willReturn($productId); $this->assertEquals($expectedResult, $this->googleOptimizer->modifyData([])); }