5
5
*/
6
6
namespace Magento \Catalog \Test \Unit \Ui \DataProvider \Product \Form \Modifier ;
7
7
8
- use Magento \Catalog \Model \ Product \ Type ;
8
+ use Magento \Catalog \Api \ Data \ ProductAttributeInterface ;
9
9
use Magento \Catalog \Ui \DataProvider \Product \Form \Modifier \General ;
10
+ use Magento \Eav \Api \AttributeRepositoryInterface ;
11
+ use Magento \Eav \Api \Data \AttributeInterface ;
12
+ use Magento \Framework \Stdlib \ArrayManager ;
10
13
11
14
/**
12
15
* Class GeneralTest
15
18
*/
16
19
class GeneralTest extends AbstractModifierTest
17
20
{
21
+ /**
22
+ * @var AttributeRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
23
+ */
24
+ private $ attributeRepositoryMock ;
25
+
26
+ /**
27
+ * @var General
28
+ */
29
+ private $ generalModifier ;
30
+
31
+ protected function setUp ()
32
+ {
33
+ parent ::setUp ();
34
+
35
+ $ this ->attributeRepositoryMock = $ this ->getMockBuilder (AttributeRepositoryInterface::class)
36
+ ->getMockForAbstractClass ();
37
+
38
+ $ arrayManager = $ this ->objectManager ->getObject (ArrayManager::class);
39
+
40
+ $ this ->generalModifier = $ this ->objectManager ->getObject (
41
+ General::class,
42
+ [
43
+ 'attributeRepository ' => $ this ->attributeRepositoryMock ,
44
+ 'locator ' => $ this ->locatorMock ,
45
+ 'arrayManager ' => $ arrayManager ,
46
+ ]
47
+ );
48
+ }
49
+
18
50
/**
19
51
* {@inheritdoc}
20
52
*/
@@ -40,4 +72,59 @@ public function testModifyMeta()
40
72
]
41
73
]));
42
74
}
75
+
76
+ /**
77
+ * @param array $data
78
+ * @param int $defaultStatusValue
79
+ * @param array $expectedResult
80
+ * @throws \Magento\Framework\Exception\NoSuchEntityException
81
+ * @dataProvider modifyDataDataProvider
82
+ */
83
+ public function testModifyDataNewProduct (array $ data , int $ defaultStatusValue , array $ expectedResult )
84
+ {
85
+ $ attributeMock = $ this ->getMockBuilder (AttributeInterface::class)
86
+ ->getMockForAbstractClass ();
87
+ $ attributeMock
88
+ ->method ('getDefaultValue ' )
89
+ ->willReturn ($ defaultStatusValue );
90
+ $ this ->attributeRepositoryMock
91
+ ->method ('get ' )
92
+ ->with (
93
+ ProductAttributeInterface::ENTITY_TYPE_CODE ,
94
+ ProductAttributeInterface::CODE_STATUS
95
+ )
96
+ ->willReturn ($ attributeMock );
97
+ $ this ->assertSame ($ expectedResult , $ this ->generalModifier ->modifyData ($ data ));
98
+ }
99
+
100
+ /**
101
+ * @return array
102
+ */
103
+ public function modifyDataDataProvider (): array
104
+ {
105
+ return [
106
+ 'With default status value ' => [
107
+ 'data ' => [],
108
+ 'defaultStatusAttributeValue ' => 5 ,
109
+ 'expectedResult ' => [
110
+ null => [
111
+ General::DATA_SOURCE_DEFAULT => [
112
+ ProductAttributeInterface::CODE_STATUS => 5 ,
113
+ ],
114
+ ],
115
+ ],
116
+ ],
117
+ 'Without default status value ' => [
118
+ 'data ' => [],
119
+ 'defaultStatusAttributeValue ' => 0 ,
120
+ 'expectedResult ' => [
121
+ null => [
122
+ General::DATA_SOURCE_DEFAULT => [
123
+ ProductAttributeInterface::CODE_STATUS => 1 ,
124
+ ],
125
+ ],
126
+ ],
127
+ ],
128
+ ];
129
+ }
43
130
}
0 commit comments