DataTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. *
  6. */
  7. namespace Magento\GoogleOptimizer\Test\Unit\Helper;
  8. /**
  9. * Class DataTest
  10. * @SuppressWarnings(PHPMD.LongVariable)
  11. */
  12. class DataTest extends \PHPUnit\Framework\TestCase
  13. {
  14. /**
  15. * @var \PHPUnit_Framework_MockObject_MockObject
  16. */
  17. protected $_scopeConfigMock;
  18. /**
  19. * @var \PHPUnit_Framework_MockObject_MockObject
  20. */
  21. protected $_googleAnalyticsHelperMock;
  22. /**
  23. * @var \Magento\GoogleOptimizer\Helper\Data
  24. */
  25. protected $_helper;
  26. protected function setUp()
  27. {
  28. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  29. $className = \Magento\GoogleOptimizer\Helper\Data::class;
  30. $arguments = $objectManagerHelper->getConstructArguments($className);
  31. /** @var \Magento\Framework\App\Helper\Context $context */
  32. $context = $arguments['context'];
  33. $this->_scopeConfigMock = $context->getScopeConfig();
  34. $this->_googleAnalyticsHelperMock = $arguments['analyticsHelper'];
  35. $this->_helper = $objectManagerHelper->getObject($className, $arguments);
  36. }
  37. /**
  38. * @param bool $isExperimentsEnabled
  39. * @dataProvider dataProviderBoolValues
  40. */
  41. public function testGoogleExperimentIsEnabled($isExperimentsEnabled)
  42. {
  43. $store = 1;
  44. $this->_scopeConfigMock->expects(
  45. $this->once()
  46. )->method(
  47. 'isSetFlag'
  48. )->with(
  49. \Magento\GoogleOptimizer\Helper\Data::XML_PATH_ENABLED,
  50. \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
  51. $store
  52. )->will(
  53. $this->returnValue($isExperimentsEnabled)
  54. );
  55. $this->assertEquals($isExperimentsEnabled, $this->_helper->isGoogleExperimentEnabled($store));
  56. }
  57. /**
  58. * @return array
  59. */
  60. public function dataProviderBoolValues()
  61. {
  62. return [[true], [false]];
  63. }
  64. /**
  65. * @param bool $isExperimentsEnabled
  66. * @param bool $isAnalyticsAvailable
  67. * @param bool $result
  68. * @dataProvider dataProviderForTestGoogleExperimentIsActive
  69. */
  70. public function testGoogleExperimentIsActive($isExperimentsEnabled, $isAnalyticsAvailable, $result)
  71. {
  72. $store = 1;
  73. $this->_scopeConfigMock->expects(
  74. $this->once()
  75. )->method(
  76. 'isSetFlag'
  77. )->with(
  78. \Magento\GoogleOptimizer\Helper\Data::XML_PATH_ENABLED,
  79. \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
  80. $store
  81. )->will(
  82. $this->returnValue($isExperimentsEnabled)
  83. );
  84. $this->_googleAnalyticsHelperMock->expects(
  85. $this->any()
  86. )->method(
  87. 'isGoogleAnalyticsAvailable'
  88. )->with(
  89. $store
  90. )->will(
  91. $this->returnValue($isAnalyticsAvailable)
  92. );
  93. $this->assertEquals($result, $this->_helper->isGoogleExperimentActive($store));
  94. }
  95. /**
  96. * @return array
  97. */
  98. public function dataProviderForTestGoogleExperimentIsActive()
  99. {
  100. return [
  101. [true, true, true],
  102. [false, true, false],
  103. [false, false, false],
  104. [true, false, false]
  105. ];
  106. }
  107. }