InitialTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\App\Test\Unit\Config;
  7. class InitialTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  11. */
  12. private $objectManager;
  13. /**
  14. * @var \Magento\Framework\App\Config\Initial
  15. */
  16. private $config;
  17. /**
  18. * @var \Magento\Framework\App\Cache\Type\Config|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. private $cacheMock;
  21. /**
  22. * @var array
  23. */
  24. private $data = [
  25. 'data' => [
  26. 'default' => ['key' => 'default_value'],
  27. 'stores' => ['default' => ['key' => 'store_value']],
  28. 'websites' => ['default' => ['key' => 'website_value']],
  29. ],
  30. 'metadata' => ['metadata'],
  31. ];
  32. protected function setUp()
  33. {
  34. $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  35. $this->cacheMock = $this->createMock(\Magento\Framework\App\Cache\Type\Config::class);
  36. $this->cacheMock->expects($this->any())
  37. ->method('load')
  38. ->with('initial_config')
  39. ->willReturn(json_encode($this->data));
  40. $serializerMock = $this->createMock(\Magento\Framework\Serialize\SerializerInterface::class);
  41. $serializerMock->method('unserialize')
  42. ->willReturn($this->data);
  43. $this->config = $this->objectManager->getObject(
  44. \Magento\Framework\App\Config\Initial::class,
  45. [
  46. 'cache' => $this->cacheMock,
  47. 'serializer' => $serializerMock,
  48. ]
  49. );
  50. }
  51. /**
  52. * @param string $scope
  53. * @param array $expected
  54. * @dataProvider getDataDataProvider
  55. */
  56. public function testGetData($scope, $expected)
  57. {
  58. $this->assertEquals($expected, $this->config->getData($scope));
  59. }
  60. /**
  61. * @return array
  62. */
  63. public function getDataDataProvider()
  64. {
  65. return [
  66. ['default', ['key' => 'default_value']],
  67. ['stores|default', ['key' => 'store_value']],
  68. ['websites|default', ['key' => 'website_value']]
  69. ];
  70. }
  71. public function testGetMetadata()
  72. {
  73. $this->assertEquals(['metadata'], $this->config->getMetadata());
  74. }
  75. }