Skip to content

Commit 659071c

Browse files
committed
magento/adobe-stock-integration#1391: SaveAssetsKeywordsInterface to delete obsolete keywords - integration test refactor
1 parent fe0be1d commit 659071c

File tree

1 file changed

+41
-51
lines changed

1 file changed

+41
-51
lines changed

dev/tests/integration/testsuite/Magento/MediaGallery/Model/ResourceModel/AssetKeywordsTest.php

Lines changed: 41 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -66,74 +66,57 @@ protected function setUp(): void
6666
*
6767
* @magentoDataFixture Magento/MediaGallery/_files/media_asset.php
6868
* @dataProvider keywordsProvider
69-
* @param array $keywords
69+
* @param array|null $keywords
70+
* @param array|null $updatedKeywords
7071
* @throws \Magento\Framework\Exception\LocalizedException
7172
*/
72-
public function testSaveAndGetKeywords(array $keywords): void
73+
public function testSaveAndGetKeywords(array $keywords = [], array $updatedKeywords = []): void
7374
{
74-
$keywords = ['pear', 'plum'];
75-
$updatedKeywords = ['pear', 'apple','orange'];
76-
7775
$loadedAssets = $this->getAssetsByPath->execute([self::FIXTURE_ASSET_PATH]);
7876
$this->assertCount(1, $loadedAssets);
7977
$loadedAsset = current($loadedAssets);
8078

79+
$this->updateAssetKeywords($loadedAsset->getId(), $keywords);
80+
$this->updateAssetKeywords($loadedAsset->getId(), $updatedKeywords);
81+
}
82+
83+
/**
84+
* Update Asset keywords
85+
*
86+
* @param int $assetId
87+
* @param array|null $keywords
88+
*/
89+
private function updateAssetKeywords(int $assetId, array $keywords = []): void
90+
{
8191
$assetKeywords = $this->assetsKeywordsFactory->create(
8292
[
83-
'assetId' => $loadedAsset->getId(),
93+
'assetId' => $assetId,
8494
'keywords' => $this->getKeywords($keywords)
8595
]
8696
);
8797

8898
$this->saveAssetsKeywords->execute([$assetKeywords]);
89-
$loadedAssetKeywords = $this->getAssetsKeywords->execute([$loadedAsset->getId()]);
90-
91-
$this->assertCount(1, $loadedAssetKeywords);
92-
93-
/** @var AssetKeywordsInterface $loadedAssetKeyword */
94-
$loadedAssetKeyword = current($loadedAssetKeywords);
95-
96-
$loadedKeywords = $loadedAssetKeyword->getKeywords();
99+
$loadedAssetKeywords = $this->getAssetsKeywords->execute([$assetId]);
97100

98-
$this->assertEquals(count($keywords), count($loadedKeywords));
101+
if (!empty($keywords)) {
102+
$this->assertCount(1, $loadedAssetKeywords);
103+
/** @var AssetKeywordsInterface $loadedAssetKeyword */
104+
$loadedAssetKeyword = current($loadedAssetKeywords);
99105

100-
$loadedKeywordStrings = [];
101-
foreach ($loadedKeywords as $loadedKeywordObject) {
102-
$loadedKeywordStrings[] = $loadedKeywordObject->getKeyword();
103-
}
104-
105-
sort($loadedKeywordStrings);
106-
sort($keywords);
107-
108-
$this->assertEquals($keywords, $loadedKeywordStrings);
109-
110-
$updatedAssetKeywords = $this->assetsKeywordsFactory->create(
111-
[
112-
'assetId' => $loadedAsset->getId(),
113-
'keywords' => $this->getKeywords($updatedKeywords)
114-
]
115-
);
116-
$this->saveAssetsKeywords->execute([$updatedAssetKeywords]);
117-
$updatedLoadedAssetKeywords = $this->getAssetsKeywords->execute([$loadedAsset->getId()]);
118-
119-
$this->assertCount(1, $updatedLoadedAssetKeywords);
106+
$loadedKeywords = $loadedAssetKeyword->getKeywords();
120107

121-
/** @var AssetKeywordsInterface $updatedLoadedAssetKeywords */
122-
$updatedLoadedAssetKeywords = current($updatedLoadedAssetKeywords);
108+
$this->assertEquals(count($keywords), count($loadedKeywords));
123109

124-
$updatedLoadedKeywords = $updatedLoadedAssetKeywords->getKeywords();
110+
$loadedKeywordStrings = [];
111+
foreach ($loadedKeywords as $loadedKeywordObject) {
112+
$loadedKeywordStrings[] = $loadedKeywordObject->getKeyword();
113+
}
125114

126-
$this->assertEquals(count($updatedKeywords), count($updatedLoadedKeywords));
115+
sort($loadedKeywordStrings);
116+
sort($keywords);
127117

128-
$updatedLoadedKeywordStrings = [];
129-
foreach ($updatedLoadedKeywords as $updatedLoadedKeywordObject) {
130-
$updatedLoadedKeywordStrings[] = $updatedLoadedKeywordObject->getKeyword();
118+
$this->assertEquals($keywords, $loadedKeywordStrings);
131119
}
132-
133-
sort($updatedLoadedKeywordStrings);
134-
sort($updatedKeywords);
135-
136-
$this->assertEquals($updatedKeywords, $updatedLoadedKeywordStrings);
137120
}
138121

139122
/**
@@ -144,10 +127,17 @@ public function testSaveAndGetKeywords(array $keywords): void
144127
public function keywordsProvider(): array
145128
{
146129
return [
147-
[['one-keyword']],
148-
[['кириллица']],
149-
[['plum', 'pear']],
150-
[[]]
130+
[['one-keyword'],['plum','orange']],
131+
[['кириллица'],[]],
132+
[[],['plum']],
133+
[['plum', 'pear'],['plum','pear']],
134+
[['plum', 'pear'],['plum','orange']],
135+
[['plum', 'pear','grape'],['plum','orange']],
136+
[['plum', 'pear','grape'],['mango']],
137+
[['plum', 'pear','grape'],['orange']],
138+
[['plum', 'pear','grape'],[]],
139+
[['plum', 'pear'],['plum', 'pear','grape','mango','orange']],
140+
[[],[]]
151141
];
152142
}
153143

0 commit comments

Comments
 (0)