7
7
8
8
use Magento \Framework \App \DeploymentConfig ;
9
9
use Magento \Framework \App \DeploymentConfig \Reader ;
10
+ use Magento \Framework \DataObject ;
11
+ use Magento \Framework \DataObjectFactory ;
10
12
use Magento \Store \App \Config \Source \InitialConfigSource ;
11
13
use PHPUnit_Framework_MockObject_MockObject as Mock ;
12
14
@@ -25,6 +27,16 @@ class InitialConfigSourceTest extends \PHPUnit_Framework_TestCase
25
27
*/
26
28
private $ deploymentConfigMock ;
27
29
30
+ /**
31
+ * @var DataObjectFactory|Mock
32
+ */
33
+ private $ dataObjectFactory ;
34
+
35
+ /**
36
+ * @var DataObject|Mock
37
+ */
38
+ private $ dataObjectMock ;
39
+
28
40
/**
29
41
* @var InitialConfigSource
30
42
*/
@@ -41,26 +53,56 @@ public function setUp()
41
53
$ this ->deploymentConfigMock = $ this ->getMockBuilder (DeploymentConfig::class)
42
54
->disableOriginalConstructor ()
43
55
->getMock ();
56
+ $ this ->dataObjectFactory = $ this ->getMockBuilder (DataObjectFactory::class)
57
+ ->setMethods (['create ' ])
58
+ ->disableOriginalConstructor ()
59
+ ->getMock ();
60
+ $ this ->dataObjectMock = $ this ->getMockBuilder (DataObject::class)
61
+ ->disableOriginalConstructor ()
62
+ ->getMock ();
44
63
45
64
$ this ->source = new InitialConfigSource (
46
65
$ this ->readerMock ,
47
66
$ this ->deploymentConfigMock ,
67
+ $ this ->dataObjectFactory ,
48
68
'configType '
49
69
);
50
70
}
51
71
52
- public function testGet ()
72
+ /**
73
+ * @param string $path
74
+ * @param array $data
75
+ * @param string|array $expected
76
+ * @dataProvider getDataProvider
77
+ */
78
+ public function testGet ($ path , $ data , $ expected )
53
79
{
54
- $ path = 'path ' ;
55
-
56
80
$ this ->readerMock ->expects ($ this ->once ())
57
81
->method ('load ' )
58
- ->willReturn ([ ' configType ' => [ $ path => ' value ' ]] );
82
+ ->willReturn ($ data );
59
83
$ this ->deploymentConfigMock ->expects ($ this ->once ())
60
84
->method ('isAvailable ' )
61
85
->willReturn (true );
86
+ $ this ->dataObjectFactory ->expects ($ this ->once ())
87
+ ->method ('create ' )
88
+ ->with (['data ' => $ data ])
89
+ ->willReturn ($ this ->dataObjectMock );
90
+ $ this ->dataObjectMock ->expects ($ this ->once ())
91
+ ->method ('getData ' )
92
+ ->willReturn ($ expected );
62
93
63
- $ this ->assertEquals ('value ' , $ this ->source ->get ($ path ));
94
+ $ this ->assertEquals ($ expected , $ this ->source ->get ($ path ));
95
+ }
96
+
97
+ /**
98
+ * @return array
99
+ */
100
+ public function getDataProvider ()
101
+ {
102
+ return [
103
+ 'simple path ' => ['path ' , ['configType ' => 'value ' ], 'value ' ],
104
+ 'empty path ' => ['' , [], []]
105
+ ];
64
106
}
65
107
66
108
public function testGetNotInstalled ()
0 commit comments