@@ -821,6 +821,9 @@ public function testGetIdentities(
821
821
bool $ isDeleted = false ,
822
822
bool $ isNew = false
823
823
): void {
824
+ if (!empty ($ data ['extension_attributes ' ]) && is_callable ($ data ['extension_attributes ' ])) {
825
+ $ data ['extension_attributes ' ] = $ data ['extension_attributes ' ]($ this );
826
+ }
824
827
$ this ->model ->setIdFieldName ('id ' );
825
828
if (is_array ($ origData )) {
826
829
foreach ($ origData as $ key => $ value ) {
@@ -835,11 +838,7 @@ public function testGetIdentities(
835
838
$ this ->assertEquals ($ expected , $ this ->model ->getIdentities ());
836
839
}
837
840
838
- /**
839
- * @return array
840
- */
841
- public function getIdentitiesProvider (): array
842
- {
841
+ protected function getMockForExtensionAttribute () {
843
842
$ extensionAttributesMock = $ this ->getMockBuilder (ExtensionAttributesInterface::class)
844
843
->disableOriginalConstructor ()
845
844
->addMethods (['getStockItem ' ])
@@ -848,16 +847,34 @@ public function getIdentitiesProvider(): array
848
847
->disableOriginalConstructor ()
849
848
->getMockForAbstractClass ();
850
849
$ extensionAttributesMock ->expects ($ this ->any ())->method ('getStockItem ' )->willReturn ($ stockItemMock );
850
+ return $ extensionAttributesMock ;
851
+ }
852
+
853
+ protected function getMockForStockInterface () {
854
+ $ stockItemMock = $ this ->getMockBuilder (StockItemInterface::class)
855
+ ->disableOriginalConstructor ()
856
+ ->getMockForAbstractClass ();
851
857
$ stockItemMock ->expects ($ this ->any ())->method ('getIsInStock ' )->willReturn (true );
858
+ }
859
+
860
+ /**
861
+ * @return array
862
+ */
863
+ public static function getIdentitiesProvider (): array
864
+ {
865
+ $ extensionAttributesMock = static fn (self $ testCase )
866
+ => $ testCase ->getMockForExtensionAttribute ();
867
+ $ stockItemMock = static fn (self $ testCase )
868
+ => $ testCase ->getMockForStockInterface ();
852
869
853
870
return [
854
871
'no changes ' => [
855
872
['cat_p_1 ' ],
856
873
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ]],
857
874
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ]]
858
875
],
859
- 'new product ' => $ this -> getNewProductProviderData (),
860
- 'new disabled product ' => $ this -> getNewDisabledProductProviderData (),
876
+ 'new product ' => self :: getNewProductProviderData (),
877
+ 'new disabled product ' => self :: getNewDisabledProductProviderData (),
861
878
'status and category change ' => [
862
879
[0 => 'cat_p_1 ' , 1 => 'cat_c_p_1 ' , 2 => 'cat_c_p_2 ' ],
863
880
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ], 'status ' => Status::STATUS_DISABLED ],
@@ -892,13 +909,13 @@ public function getIdentitiesProvider(): array
892
909
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [7 ], 'status ' => Status::STATUS_DISABLED ],
893
910
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [7 ], 'status ' => Status::STATUS_ENABLED ]
894
911
],
895
- 'status changed, category unassigned ' => $ this -> getStatusAndCategoryChangesData (),
912
+ 'status changed, category unassigned ' => self :: getStatusAndCategoryChangesData (),
896
913
'no status changes ' => [
897
914
[0 => 'cat_p_1 ' ],
898
915
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ], 'status ' => Status::STATUS_ENABLED ],
899
916
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ], 'status ' => Status::STATUS_ENABLED ]
900
917
],
901
- 'no stock status changes ' => $ this -> getNoStockStatusChangesData ($ extensionAttributesMock ),
918
+ 'no stock status changes ' => self :: getNoStockStatusChangesData ($ extensionAttributesMock ),
902
919
'no stock status data 1 ' => [
903
920
[0 => 'cat_p_1 ' ],
904
921
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ], 'status ' => Status::STATUS_ENABLED ],
@@ -921,7 +938,7 @@ public function getIdentitiesProvider(): array
921
938
'stock_data ' => ['is_in_stock ' => true ]
922
939
]
923
940
],
924
- 'stock status changes for enabled product ' => $ this -> getStatusStockProviderData ($ extensionAttributesMock ),
941
+ 'stock status changes for enabled product ' => self :: getStatusStockProviderData ($ extensionAttributesMock ),
925
942
'stock status changes for disabled product ' => [
926
943
[0 => 'cat_p_1 ' ],
927
944
['id ' => 1 , 'name ' => 'value ' , 'category_ids ' => [1 ], 'status ' => Status::STATUS_DISABLED ],
@@ -940,7 +957,7 @@ public function getIdentitiesProvider(): array
940
957
/**
941
958
* @return array
942
959
*/
943
- private function getStatusAndCategoryChangesData (): array
960
+ private static function getStatusAndCategoryChangesData (): array
944
961
{
945
962
return [
946
963
[0 => 'cat_p_1 ' , 1 => 'cat_c_p_5 ' ],
@@ -957,11 +974,11 @@ private function getStatusAndCategoryChangesData(): array
957
974
}
958
975
959
976
/**
960
- * @param MockObject $extensionAttributesMock
977
+ * @param $extensionAttributesMock
961
978
*
962
979
* @return array
963
980
*/
964
- private function getNoStockStatusChangesData (MockObject $ extensionAttributesMock ): array
981
+ private static function getNoStockStatusChangesData ($ extensionAttributesMock ): array
965
982
{
966
983
return [
967
984
[0 => 'cat_p_1 ' ],
@@ -971,7 +988,7 @@ private function getNoStockStatusChangesData(MockObject $extensionAttributesMock
971
988
'name ' => 'value ' ,
972
989
'category_ids ' => [1 ],
973
990
'status ' => Status::STATUS_ENABLED ,
974
- 'stock_data ' => ['is_in_stock ' => true ],
991
+ 'stock_data ' => ['is_in_stock ' => false ],
975
992
ExtensibleDataInterface::EXTENSION_ATTRIBUTES_KEY => $ extensionAttributesMock
976
993
]
977
994
];
@@ -980,7 +997,7 @@ private function getNoStockStatusChangesData(MockObject $extensionAttributesMock
980
997
/**
981
998
* @return array
982
999
*/
983
- private function getNewProductProviderData (): array
1000
+ private static function getNewProductProviderData (): array
984
1001
{
985
1002
return [
986
1003
['cat_p_1 ' , 'cat_c_p_1 ' , 'cat_p_new ' ],
@@ -1000,7 +1017,7 @@ private function getNewProductProviderData(): array
1000
1017
/**
1001
1018
* @return array
1002
1019
*/
1003
- private function getNewDisabledProductProviderData (): array
1020
+ private static function getNewDisabledProductProviderData (): array
1004
1021
{
1005
1022
return [
1006
1023
['cat_p_1 ' ],
@@ -1019,11 +1036,11 @@ private function getNewDisabledProductProviderData(): array
1019
1036
}
1020
1037
1021
1038
/**
1022
- * @param MockObject $extensionAttributesMock
1039
+ * @param $extensionAttributesMock
1023
1040
*
1024
1041
* @return array
1025
1042
*/
1026
- private function getStatusStockProviderData (MockObject $ extensionAttributesMock ): array
1043
+ private static function getStatusStockProviderData ($ extensionAttributesMock ): array
1027
1044
{
1028
1045
return [
1029
1046
[0 => 'cat_p_1 ' , 1 => 'cat_c_p_1 ' ],
@@ -1033,7 +1050,7 @@ private function getStatusStockProviderData(MockObject $extensionAttributesMock)
1033
1050
'name ' => 'value ' ,
1034
1051
'category_ids ' => [1 ],
1035
1052
'status ' => Status::STATUS_ENABLED ,
1036
- 'stock_data ' => ['is_in_stock ' => false ],
1053
+ 'stock_data ' => ['is_in_stock ' => true ],
1037
1054
ExtensibleDataInterface::EXTENSION_ATTRIBUTES_KEY => $ extensionAttributesMock
1038
1055
]
1039
1056
];
0 commit comments