145 lines
4.9 KiB
PHP
Executable File
145 lines
4.9 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Customer\Model;
|
|
|
|
use Magento\Store\Model\ScopeInterface;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
|
|
/**
|
|
* Test for Magento\Customer\Model\GroupManagement
|
|
*/
|
|
class GroupManagementTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Framework\ObjectManagerInterface
|
|
*/
|
|
protected $objectManager;
|
|
|
|
/**
|
|
* @var \Magento\Customer\Api\GroupManagementInterface
|
|
*/
|
|
protected $groupManagement;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->groupManagement = $this->objectManager->get(\Magento\Customer\Api\GroupManagementInterface::class);
|
|
}
|
|
|
|
/**
|
|
* @param $testGroup
|
|
* @param $storeId
|
|
*
|
|
* @dataProvider getDefaultGroupDataProvider
|
|
*/
|
|
public function testGetDefaultGroupWithStoreId($testGroup, $storeId)
|
|
{
|
|
$this->assertDefaultGroupMatches($testGroup, $storeId);
|
|
}
|
|
|
|
/**
|
|
* @magentoDataFixture Magento/Store/_files/core_second_third_fixturestore.php
|
|
*/
|
|
public function testGetDefaultGroupWithNonDefaultStoreId()
|
|
{
|
|
/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
|
|
$storeManager = Bootstrap::getObjectManager()->get(\Magento\Store\Model\StoreManagerInterface::class);
|
|
$nonDefaultStore = $storeManager->getStore('secondstore');
|
|
$nonDefaultStoreId = $nonDefaultStore->getId();
|
|
/** @var \Magento\Framework\App\MutableScopeConfig $scopeConfig */
|
|
$scopeConfig = $this->objectManager->get(\Magento\Framework\App\MutableScopeConfig::class);
|
|
$scopeConfig->setValue(
|
|
\Magento\Customer\Model\GroupManagement::XML_PATH_DEFAULT_ID,
|
|
2,
|
|
ScopeInterface::SCOPE_STORE,
|
|
'secondstore'
|
|
);
|
|
$testGroup = ['id' => 2, 'code' => 'Wholesale', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer'];
|
|
$this->assertDefaultGroupMatches($testGroup, $nonDefaultStoreId);
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function testGetDefaultGroupWithInvalidStoreId()
|
|
{
|
|
$this->expectException(\Magento\Framework\Exception\NoSuchEntityException::class);
|
|
|
|
$storeId = 1234567;
|
|
$this->groupManagement->getDefaultGroup($storeId);
|
|
}
|
|
|
|
public function testIsReadonlyWithGroupId()
|
|
{
|
|
$testGroup = ['id' => 3, 'code' => 'General', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer'];
|
|
$this->assertFalse($this->groupManagement->isReadonly($testGroup['id']));
|
|
}
|
|
|
|
/**
|
|
*/
|
|
public function testIsReadonlyWithInvalidGroupId()
|
|
{
|
|
$this->expectException(\Magento\Framework\Exception\NoSuchEntityException::class);
|
|
|
|
$testGroup = ['id' => 4, 'code' => 'General', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer'];
|
|
$this->groupManagement->isReadonly($testGroup['id']);
|
|
}
|
|
|
|
public function testGetNotLoggedInGroup()
|
|
{
|
|
$notLoggedInGroup = $this->groupManagement->getNotLoggedInGroup();
|
|
$this->assertEquals(GroupManagement::NOT_LOGGED_IN_ID, $notLoggedInGroup->getId());
|
|
}
|
|
|
|
public function testGetLoggedInGroups()
|
|
{
|
|
$loggedInGroups = $this->groupManagement->getLoggedInGroups();
|
|
foreach ($loggedInGroups as $group) {
|
|
$this->assertNotEquals(GroupManagement::NOT_LOGGED_IN_ID, $group->getId());
|
|
$this->assertNotEquals(GroupManagement::CUST_GROUP_ALL, $group->getId());
|
|
}
|
|
}
|
|
|
|
public function testGetAllGroup()
|
|
{
|
|
$allGroup = $this->groupManagement->getAllCustomersGroup();
|
|
$this->assertEquals(32000, $allGroup->getId());
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getDefaultGroupDataProvider()
|
|
{
|
|
/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
|
|
$storeManager = Bootstrap::getObjectManager()->get(\Magento\Store\Model\StoreManagerInterface::class);
|
|
$defaultStoreId = $storeManager->getStore()->getId();
|
|
return [
|
|
'no store id' => [
|
|
['id' => 1, 'code' => 'General', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer'],
|
|
null,
|
|
],
|
|
'default store id' => [
|
|
['id' => 1, 'code' => 'General', 'tax_class_id' => 3, 'tax_class_name' => 'Retail Customer'],
|
|
$defaultStoreId,
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @param $testGroup
|
|
* @param $storeId
|
|
*/
|
|
private function assertDefaultGroupMatches($testGroup, $storeId)
|
|
{
|
|
$group = $this->groupManagement->getDefaultGroup($storeId);
|
|
$this->assertEquals($testGroup['id'], $group->getId());
|
|
$this->assertEquals($testGroup['code'], $group->getCode());
|
|
$this->assertEquals($testGroup['tax_class_id'], $group->getTaxClassId());
|
|
$this->assertEquals($testGroup['tax_class_name'], $group->getTaxClassName());
|
|
}
|
|
}
|