Skip to content

Commit 2d12dac

Browse files
alepane21rostyslav-hymon
authored andcommitted
add integration test
1 parent 2a01489 commit 2d12dac

File tree

2 files changed

+123
-0
lines changed

2 files changed

+123
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Catalog\Model\ResourceModel\Category;
7+
8+
class CollectionTest extends \PHPUnit\Framework\TestCase
9+
{
10+
/**
11+
* @var \Magento\Catalog\Model\ResourceModel\Category\Collection
12+
*/
13+
protected $collection;
14+
15+
/**
16+
* Sets up the fixture, for example, opens a network connection.
17+
* This method is called before a test is executed.
18+
*/
19+
protected function setUp()
20+
{
21+
$this->collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
22+
\Magento\Catalog\Model\ResourceModel\Category\Collection::class
23+
);
24+
}
25+
26+
protected function setDown() {
27+
/* Refresh stores memory cache after store deletion */
28+
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
29+
\Magento\Store\Model\StoreManagerInterface::class
30+
)->reinitStores();
31+
}
32+
33+
/**
34+
* @magentoAppIsolation enabled
35+
* @magentoDbIsolation enabled
36+
* @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php
37+
*/
38+
public function testJoinUrlRewriteOnDefault()
39+
{
40+
$categories = $this->collection->joinUrlRewrite()->addPathFilter('1/2/3');
41+
$this->assertCount(1, $categories);
42+
/** @var $category \Magento\Catalog\Model\Category */
43+
$category = $categories->getFirstItem();
44+
$this->assertStringEndsWith('category.html', $category->getUrl());
45+
}
46+
47+
/**
48+
* @magentoAppIsolation enabled
49+
* @magentoDbIsolation enabled
50+
* @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/category_multiple_stores.php
51+
*/
52+
public function testJoinUrlRewriteNotOnDefaultStore()
53+
{
54+
$store = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Store\Model\Store::class);
55+
$storeId = $store->load('second_category_store', 'code')->getId();
56+
$categories = $this->collection->setStoreId($storeId)->joinUrlRewrite()->addPathFilter('1/2/3');
57+
$this->assertCount(1, $categories);
58+
/** @var $category \Magento\Catalog\Model\Category */
59+
$category = $categories->getFirstItem();
60+
$this->assertStringEndsWith('category-3-on-2.html', $category->getUrl());
61+
}
62+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
/** @var \Magento\Catalog\Model\CategoryFactory $factory */
3+
$factory = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
4+
\Magento\Catalog\Model\CategoryFactory::class
5+
);
6+
/** @var \Magento\Catalog\Model\CategoryRepository $repository */
7+
$repository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
8+
\Magento\Catalog\Model\CategoryRepository::class
9+
);
10+
/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
11+
$storeManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
12+
\Magento\Store\Model\StoreManagerInterface::class
13+
);
14+
/** @var \Magento\Store\Model\Store $store */
15+
$store = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Store\Model\Store::class);
16+
if (!$store->load('second_category_store', 'code')->getId()) {
17+
$websiteId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
18+
\Magento\Store\Model\StoreManagerInterface::class
19+
)->getWebsite()->getId();
20+
$groupId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
21+
\Magento\Store\Model\StoreManagerInterface::class
22+
)->getWebsite()->getDefaultGroupId();
23+
$store->setCode(
24+
'second_category_store'
25+
)->setWebsiteId(
26+
$websiteId
27+
)->setGroupId(
28+
$groupId
29+
)->setName(
30+
'Fixture Store'
31+
)->setSortOrder(
32+
10
33+
)->setIsActive(
34+
1
35+
);
36+
$store->save();
37+
}
38+
39+
/* Refresh stores memory cache */
40+
\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
41+
\Magento\Store\Model\StoreManagerInterface::class
42+
)->reinitStores();
43+
44+
/** @var \Magento\Catalog\Model\Category $newCategory */
45+
$newCategory = $factory->create();
46+
$newCategory
47+
->setName('Category')
48+
->setParentId(2)
49+
->setLevel(2)
50+
->setPath('1/2/3')
51+
->setAvailableSortBy('name')
52+
->setDefaultSortBy('name')
53+
->setIsActive(true)
54+
->setPosition(1);
55+
$repository->save($newCategory);
56+
$currentStoreId = $storeManager->getStore()->getId();
57+
$storeManager->setCurrentStore($storeManager->getStore($store->getId()));
58+
$newCategory
59+
->setUrlKey('category-3-on-2');
60+
$repository->save($newCategory);
61+
$storeManager->setCurrentStore($storeManager->getStore($currentStoreId));

0 commit comments

Comments
 (0)