16 use PHPUnit_Framework_MockObject_MockObject as MockObject;
60 $this->objectManagerHelper =
new ObjectManagerHelper($this);
62 $this->productMock = $this->createMock(\
Magento\Catalog\Model\Product::class);
63 $this->locatorMock = $this->createMock(\
Magento\Catalog\Model\Locator\LocatorInterface::class);
64 $this->locatorMock->expects($this->any())
65 ->method(
'getProduct')
66 ->willReturn($this->productMock);
70 $this->googleOptimizer = $this->objectManagerHelper->getObject(
71 GoogleOptimizer::class,
73 'locator' => $this->locatorMock,
74 'dataHelper' => $this->dataHelperMock,
75 'codeHelper' => $this->codeHelperMock
87 $this->productMock->expects($this->any())
88 ->method(
'getStoreId')
90 $this->dataHelperMock->expects($this->once())
91 ->method(
'isGoogleExperimentActive')
102 $this->assertEquals([], $this->googleOptimizer->modifyData([]));
113 public function testGetDataGoogleExperimentEnabled(
$productId, $experimentScript, $codeId, $expectedCalls)
115 $expectedResult[
$productId][
'google_experiment'] = [
116 'experiment_script' => $experimentScript,
117 'code_id' => $codeId,
123 $codeModelMock = $this->createPartialMock(
125 [
'getExperimentScript',
'getCodeId']
127 $codeModelMock->expects($this->exactly($expectedCalls))
128 ->method(
'getExperimentScript')
129 ->willReturn($experimentScript);
130 $codeModelMock->expects($this->exactly($expectedCalls))
131 ->method(
'getCodeId')
132 ->willReturn($codeId);
134 $this->codeHelperMock->expects($this->exactly($expectedCalls))
135 ->method(
'getCodeObjectByEntity')
136 ->with($this->productMock)
137 ->willReturn($codeModelMock);
138 $this->productMock->expects($this->atLeastOnce())
142 $this->assertEquals($expectedResult, $this->googleOptimizer->modifyData([]));
151 [
'productId' => 2,
'experimentScript' =>
'some script',
'codeId' =>
'3',
'expectedCalls' => 1],
152 [
'productId' =>
null,
'experimentScript' =>
'',
'codeId' =>
'',
'expectedCalls' => 0],
162 $this->assertEquals([], $this->googleOptimizer->modifyMeta([]));
175 'label' =>
__(
'Product View Optimization'),
176 'collapsible' =>
true,
179 'dataScope' =>
'data.google_experiment',
184 'experiment_script' => [
191 'label' =>
__(
'Experiment Code'),
192 'notice' =>
__(
'Experiment code should be added to the original page only.'),
193 'dataScope' =>
'experiment_script',
208 'dataScope' =>
'code_id',
218 $this->assertEquals($expectedResult, $this->googleOptimizer->modifyMeta([]));
testGetDataGoogleExperimentDisabled()
getDataGoogleExperimentEnabledDataProvider()
testGetMetaGoogleExperimentDisabled()
testGetMetaGoogleExperimentEnabled()