117 lines
3.7 KiB
PHP
Executable File
117 lines
3.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Customer\Model;
|
|
|
|
/**
|
|
* Test for \Magento\Customer\Model\GroupRegistry
|
|
*/
|
|
class GroupRegistryTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* The group code from the fixture data.
|
|
*/
|
|
const GROUP_CODE = 'custom_group';
|
|
|
|
/**
|
|
* @var \Magento\Customer\Model\GroupRegistry
|
|
*/
|
|
protected $_model;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
|
|
->create(\Magento\Customer\Model\GroupRegistry::class);
|
|
}
|
|
|
|
/**
|
|
* Find the group with a given code.
|
|
*
|
|
* @param string $code
|
|
* @return int
|
|
*/
|
|
protected function _findGroupIdWithCode($code)
|
|
{
|
|
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
|
|
/** @var \Magento\Customer\Api\GroupRepositoryInterface $groupRepository */
|
|
$groupRepository = $objectManager->create(\Magento\Customer\Api\GroupRepositoryInterface::class);
|
|
/** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchBuilder */
|
|
$searchBuilder = $objectManager->create(\Magento\Framework\Api\SearchCriteriaBuilder::class);
|
|
|
|
foreach ($groupRepository->getList($searchBuilder->create())->getItems() as $group) {
|
|
if ($group->getCode() === $code) {
|
|
return $group->getId();
|
|
}
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Customer/_files/customer_group.php
|
|
*/
|
|
public function testRetrieve()
|
|
{
|
|
$groupId = $this->_findGroupIdWithCode(self::GROUP_CODE);
|
|
$group = $this->_model->retrieve($groupId);
|
|
$this->assertInstanceOf(\Magento\Customer\Model\Group::class, $group);
|
|
$this->assertEquals($groupId, $group->getId());
|
|
}
|
|
|
|
/**
|
|
* Ensure can retrieve group with id 0 which is a valid group ID.
|
|
*/
|
|
public function testRetrieveGroup0()
|
|
{
|
|
$groupId = 0;
|
|
$group = $this->_model->retrieve($groupId);
|
|
$this->assertInstanceOf(\Magento\Customer\Model\Group::class, $group);
|
|
$this->assertEquals($groupId, $group->getId());
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Customer/_files/customer_group.php
|
|
*/
|
|
public function testRetrieveCached()
|
|
{
|
|
$groupId = $this->_findGroupIdWithCode(self::GROUP_CODE);
|
|
$groupBeforeDeletion = $this->_model->retrieve($groupId);
|
|
$group2 = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
|
|
->create(\Magento\Customer\Model\Group::class);
|
|
$group2->load($groupId)
|
|
->delete();
|
|
$groupAfterDeletion = $this->_model->retrieve($groupId);
|
|
$this->assertEquals($groupBeforeDeletion, $groupAfterDeletion);
|
|
$this->assertInstanceOf(\Magento\Customer\Model\Group::class, $groupAfterDeletion);
|
|
$this->assertEquals($groupId, $groupAfterDeletion->getId());
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function testRetrieveException()
|
|
{
|
|
$this->expectException(\Magento\Framework\Exception\NoSuchEntityException::class);
|
|
|
|
$groupId = $this->_findGroupIdWithCode(self::GROUP_CODE);
|
|
$this->_model->retrieve($groupId);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Customer/_files/customer_group.php
|
|
*/
|
|
public function testRemove()
|
|
{
|
|
$this->expectException(\Magento\Framework\Exception\NoSuchEntityException::class);
|
|
|
|
$groupId = $this->_findGroupIdWithCode(self::GROUP_CODE);
|
|
$group = $this->_model->retrieve($groupId);
|
|
$this->assertInstanceOf(\Magento\Customer\Model\Group::class, $group);
|
|
$group->delete();
|
|
$this->_model->remove($groupId);
|
|
$this->_model->retrieve($groupId);
|
|
}
|
|
}
|