190 lines
5.7 KiB
PHP
Executable File
190 lines
5.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Store\Model;
|
|
|
|
class WebsiteTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var \Magento\Store\Model\Website
|
|
*/
|
|
protected $_model;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Store\Model\Website::class
|
|
);
|
|
$this->_model->load(1);
|
|
}
|
|
|
|
/**
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testLoadById()
|
|
{
|
|
$this->assertEquals(1, $this->_model->getId());
|
|
$this->assertEquals('base', $this->_model->getCode());
|
|
$this->assertEquals('Main Website', $this->_model->getName());
|
|
}
|
|
|
|
/**
|
|
* @magentoDbIsolation enabled
|
|
*/
|
|
public function testLoadByCode()
|
|
{
|
|
$this->_model->load('admin');
|
|
$this->assertEquals(0, $this->_model->getId());
|
|
$this->assertEquals('admin', $this->_model->getCode());
|
|
$this->assertEquals('Admin', $this->_model->getName());
|
|
}
|
|
|
|
/**
|
|
* @covers \Magento\Store\Model\Website::setGroups
|
|
* @covers \Magento\Store\Model\Website::setStores
|
|
* @covers \Magento\Store\Model\Website::getStores
|
|
*/
|
|
public function testSetGroupsAndStores()
|
|
{
|
|
/* Groups */
|
|
$expectedGroup = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Store\Model\Group::class
|
|
);
|
|
$expectedGroup->setId(123);
|
|
$this->_model->setDefaultGroupId($expectedGroup->getId());
|
|
$this->_model->setGroups([$expectedGroup]);
|
|
|
|
$groups = $this->_model->getGroups();
|
|
$this->assertSame($expectedGroup, reset($groups));
|
|
|
|
/* Stores */
|
|
$expectedStore = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
|
|
\Magento\Store\Model\Store::class
|
|
);
|
|
$expectedStore->setId(456);
|
|
$expectedGroup->setDefaultStoreId($expectedStore->getId());
|
|
$this->_model->setStores([$expectedStore]);
|
|
|
|
$stores = $this->_model->getStores();
|
|
$this->assertSame($expectedStore, reset($stores));
|
|
}
|
|
|
|
public function testGetGroups()
|
|
{
|
|
$groups = $this->_model->getGroups();
|
|
$this->assertEquals([1], array_keys($groups));
|
|
$this->assertInstanceOf(\Magento\Store\Model\Group::class, $groups[1]);
|
|
$this->assertEquals(1, $groups[1]->getId());
|
|
}
|
|
|
|
public function testGetGroupIds()
|
|
{
|
|
$this->assertEquals([1 => 1], $this->_model->getGroupIds());
|
|
}
|
|
|
|
public function testGetGroupsCount()
|
|
{
|
|
$this->assertEquals(1, $this->_model->getGroupsCount());
|
|
}
|
|
|
|
public function testGetDefaultGroup()
|
|
{
|
|
$defaultGroup = $this->_model->getDefaultGroup();
|
|
$this->assertInstanceOf(\Magento\Store\Model\Group::class, $defaultGroup);
|
|
$this->assertEquals(1, $defaultGroup->getId());
|
|
|
|
$this->_model->setDefaultGroupId(null);
|
|
$this->assertFalse($this->_model->getDefaultGroup());
|
|
}
|
|
|
|
public function testGetStores()
|
|
{
|
|
$stores = $this->_model->getStores();
|
|
$this->assertEquals([1], array_keys($stores));
|
|
$this->assertInstanceOf(\Magento\Store\Model\Store::class, $stores[1]);
|
|
$this->assertEquals(1, $stores[1]->getId());
|
|
}
|
|
|
|
public function testGetStoreIds()
|
|
{
|
|
$this->assertEquals([1 => 1], $this->_model->getStoreIds());
|
|
}
|
|
|
|
public function testGetStoreCodes()
|
|
{
|
|
$this->assertEquals([1 => 'default'], $this->_model->getStoreCodes());
|
|
}
|
|
|
|
public function testGetStoresCount()
|
|
{
|
|
$this->assertEquals(1, $this->_model->getStoresCount());
|
|
}
|
|
|
|
public function testIsCanDelete()
|
|
{
|
|
$this->assertFalse($this->_model->isCanDelete());
|
|
$this->_model->isReadOnly(true);
|
|
$this->assertFalse($this->_model->isCanDelete());
|
|
}
|
|
|
|
public function testGetWebsiteGroupStore()
|
|
{
|
|
$this->assertEquals('1--', $this->_model->getWebsiteGroupStore());
|
|
$this->_model->setGroupId(123);
|
|
$this->_model->setStoreId(456);
|
|
$this->assertEquals('1-123-456', $this->_model->getWebsiteGroupStore());
|
|
}
|
|
|
|
public function testGetDefaultGroupId()
|
|
{
|
|
$this->assertEquals(1, $this->_model->getDefaultGroupId());
|
|
}
|
|
|
|
public function testGetBaseCurrency()
|
|
{
|
|
$currency = $this->_model->getBaseCurrency();
|
|
$this->assertInstanceOf(\Magento\Directory\Model\Currency::class, $currency);
|
|
$this->assertEquals('USD', $currency->getCode());
|
|
}
|
|
|
|
public function testGetDefaultStore()
|
|
{
|
|
$defaultStore = $this->_model->getDefaultStore();
|
|
$this->assertInstanceOf(\Magento\Store\Model\Store::class, $defaultStore);
|
|
$this->assertEquals(1, $defaultStore->getId());
|
|
}
|
|
|
|
public function testGetDefaultStoresSelect()
|
|
{
|
|
$this->assertInstanceOf(\Magento\Framework\DB\Select::class, $this->_model->getDefaultStoresSelect());
|
|
}
|
|
|
|
public function testIsReadonly()
|
|
{
|
|
$this->assertFalse($this->_model->isReadOnly());
|
|
$this->_model->isReadOnly(true);
|
|
$this->assertTrue($this->_model->isReadOnly());
|
|
}
|
|
|
|
/**
|
|
* @magentoAppIsolation enabled
|
|
* @magentoAppArea adminhtml
|
|
*/
|
|
public function testCRUD()
|
|
{
|
|
$this->_model->setData(['code' => 'test_website', 'name' => 'test website', 'default_group_id' => 1]);
|
|
|
|
/* emulate admin store */
|
|
$crud = new \Magento\TestFramework\Entity($this->_model, ['name' => 'new name']);
|
|
$crud->testCrud();
|
|
}
|
|
|
|
public function testCollection()
|
|
{
|
|
$collection = $this->_model->getCollection()->joinGroupAndStore()->addIdFilter(1);
|
|
$this->assertCount(1, $collection->getItems());
|
|
}
|
|
}
|