diff --git a/.gitattributes b/.gitattributes
index dfddb2c3183..a636a7583ff 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -23,6 +23,8 @@
/README.md export-ignore
+/Makefile export-ignore
+
# Enforce checkout with linux lf consistent over all platforms
*.html text eol=lf
*.css text eol=lf
diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml
index 82d09b95319..2708ae8f9f2 100644
--- a/.github/workflows/phpunit.yml
+++ b/.github/workflows/phpunit.yml
@@ -99,7 +99,7 @@ jobs:
phpunit-result-cache-
- name: Run phpUnit
- run: php vendor/bin/phpunit --configuration .phpunit.dist.xml
+ run: php vendor/bin/phpunit --configuration .phpunit.dist.xml --testsuite Base,Error,Mage,Varien
- name: Save result cache
uses: actions/cache/save@v4
diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php
index 401e228cf22..a0c2c46c8cc 100644
--- a/.php-cs-fixer.dist.php
+++ b/.php-cs-fixer.dist.php
@@ -15,7 +15,7 @@
// PHP84: Adds or removes ? before single type declarations or |null at the end of union types when parameters have a default null value.
'nullable_type_declaration_for_default_null_value' => true,
// Calls to PHPUnit\Framework\TestCase static methods must all be of the same type, either $this->, self:: or static::
- 'php_unit_test_case_static_method_calls' => ['call_type' => 'this'],
+ 'php_unit_test_case_static_method_calls' => ['call_type' => 'static'],
// Convert double quotes to single quotes for simple strings.
'single_quote' => true,
// Arguments lists, array destructuring lists, arrays that are multi-line, match-lines and parameters lists must have a trailing comma.
diff --git a/.phpunit.dist.xml b/.phpunit.dist.xml
index 11215357912..dd00746b5ca 100644
--- a/.phpunit.dist.xml
+++ b/.phpunit.dist.xml
@@ -31,6 +31,81 @@
tests/unit/Mage
+
+ tests/unit/Mage/Admin
+
+
+ tests/unit/Mage/Adminhtml
+
+
+ tests/unit/Mage/AdminNotification
+
+
+ tests/unit/Mage/Api
+
+
+ tests/unit/Mage/Catalog
+
+
+ tests/unit/Mage/Cms
+
+
+ tests/unit/Mage/Contacts
+
+
+ tests/unit/Mage/Core
+
+
+ tests/unit/Mage/Customer
+
+
+ tests/unit/Mage/Directory
+
+
+ tests/unit/Mage/Downloadable
+
+
+ tests/unit/Mage/Eav
+
+
+ tests/unit/Mage/GiftMessage
+
+
+ tests/unit/Mage/Index
+
+
+ tests/unit/Mage/Log
+
+
+ tests/unit/Mage/Newsletter
+
+
+ tests/unit/Mage/Page
+
+
+ tests/unit/Mage/Reports
+
+
+ tests/unit/Mage/Review
+
+
+ tests/unit/Mage/Rule
+
+
+ tests/unit/Mage/Sales
+
+
+ tests/unit/Mage/Sitemap
+
+
+ tests/unit/Mage/Tax
+
+
+ tests/unit/Mage/Uploader
+
+
+ tests/unit/Mage/Wishlist
+
tests/unit/Varien
diff --git a/.rector.php b/.rector.php
index cdc96820d8a..d22287c7c76 100644
--- a/.rector.php
+++ b/.rector.php
@@ -17,6 +17,7 @@
use Rector\Php82\Rector as Php82;
use Rector\Php83\Rector as Php83;
use Rector\Php84\Rector as Php84;
+use Rector\PHPUnit\CodeQuality\Rector\Class_\PreferPHPUnitThisCallRector;
use Rector\TypeDeclaration\Rector as TypeDeclaration;
try {
@@ -49,6 +50,8 @@
Php80\Class_\ClassPropertyAssignToConstructorPromotionRector::class, # todo: wait for php80
Php80\Class_\StringableForToStringRector::class, # todo: wait for php80
TypeDeclaration\ClassMethod\ReturnNeverTypeRector::class,
+ # use static methods
+ PreferPHPUnitThisCallRector::class,
__DIR__ . '/shell/translations.php',
__DIR__ . '/shell/update-copyright.php',
__DIR__ . '/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php',
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000000..43639b1ca3d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,13 @@
+mkdocs-serve:
+ @if command -v mkdocs >/dev/null ; then \
+ mkdocs serve; \
+ else \
+ echo "mkdocs is not installed, see https://docs.openmage.org/developers/mkdocs/" && exit 2; \
+ fi; \
+
+phpunit-serve:
+ @if test -f build/coverage/index.html ; then \
+ xdg-open build/coverage/index.html; \
+ else \
+ echo "phpunit coverage not found, run \"composer run phpunit:coverage-local\"" && exit 2; \
+ fi; \
diff --git a/app/code/core/Mage/Adminhtml/Block/Cache/Grid.php b/app/code/core/Mage/Adminhtml/Block/Cache/Grid.php
index 0052b72901d..6b18284bd58 100644
--- a/app/code/core/Mage/Adminhtml/Block/Cache/Grid.php
+++ b/app/code/core/Mage/Adminhtml/Block/Cache/Grid.php
@@ -107,15 +107,14 @@ public function decorateStatus($value, $row, $column, $isExport)
{
$class = '';
if (isset($this->_invalidatedTypes[$row->getId()])) {
- $cell = '' . $this->__('Invalidated') . '';
+ $class = self::CSS_SEVERITY_MINOR;
+ $value = $this->__('Invalidated');
+ } elseif ($row->getStatus()) {
+ $class = self::CSS_SEVERITY_NOTICE;
} else {
- if ($row->getStatus()) {
- $cell = '' . $value . '';
- } else {
- $cell = '' . $value . '';
- }
+ $class = self::CSS_SEVERITY_CRITICAL;
}
- return $cell;
+ return sprintf(self::PATTERN_SEVERITY, $class, $value);
}
/**
diff --git a/app/code/core/Mage/Adminhtml/Block/Permissions/OrphanedResource/Grid.php b/app/code/core/Mage/Adminhtml/Block/Permissions/OrphanedResource/Grid.php
index 143a2dd87e2..8ae15a176ea 100644
--- a/app/code/core/Mage/Adminhtml/Block/Permissions/OrphanedResource/Grid.php
+++ b/app/code/core/Mage/Adminhtml/Block/Permissions/OrphanedResource/Grid.php
@@ -15,6 +15,8 @@
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
+use Mage_Adminhtml_Block_Widget_Grid_Massaction_Abstract as MassAction;
+
/**
* Adminhtml permissions orphanedResource grid
*
@@ -75,7 +77,7 @@ protected function _prepareMassaction()
$this->setMassactionIdField('resource_id');
$this->getMassactionBlock()->setFormFieldName('resource_id');
- $this->getMassactionBlock()->addItem('delete', [
+ $this->getMassactionBlock()->addItem(MassAction::DELETE, [
'label' => Mage::helper('adminhtml')->__('Delete'),
'url' => $this->getUrl('*/*/massDelete'),
'confirm' => Mage::helper('adminhtml')->__('Are you sure you want to do this?'),
diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php b/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
index 5179c843b65..a6343110903 100644
--- a/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
+++ b/app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
@@ -25,6 +25,12 @@
*/
class Mage_Adminhtml_Block_Widget_Grid extends Mage_Adminhtml_Block_Widget
{
+ public const PATTERN_SEVERITY = '%s';
+ public const CSS_SEVERITY_CRITICAL = 'grid-severity-critical';
+ public const CSS_SEVERITY_MAJOR = 'grid-severity-major';
+ public const CSS_SEVERITY_MINOR = 'grid-severity-minor';
+ public const CSS_SEVERITY_NOTICE = 'grid-severity-notice';
+
/**
* Columns array
*
diff --git a/app/code/core/Mage/Cms/Block/Widget/Page/Link.php b/app/code/core/Mage/Cms/Block/Widget/Page/Link.php
index 773c6d85809..371bbddc90b 100644
--- a/app/code/core/Mage/Cms/Block/Widget/Page/Link.php
+++ b/app/code/core/Mage/Cms/Block/Widget/Page/Link.php
@@ -68,6 +68,7 @@ public function getHref()
* as parameter or retrieve page title from DB using passed identifier or page id.
*
* @return string
+ * @throws Mage_Core_Model_Store_Exception
*/
public function getTitle()
{
@@ -77,10 +78,9 @@ public function getTitle()
// compare to null used here bc user can specify blank title
$this->_title = $this->getData('title');
} elseif ($this->getData('page_id')) {
- $this->_title = Mage::getResourceSingleton('cms/page')->getCmsPageTitleById($this->getData('page_id'));
+ $this->_title = $this->getCmsPageTitleById($this->getData('page_id'));
} elseif ($this->getData('href')) {
- $this->_title = Mage::getResourceSingleton('cms/page')->setStore(Mage::app()->getStore())
- ->getCmsPageTitleByIdentifier($this->getData('href'));
+ $this->_title = $this->getCmsPageTitleByIdentifier($this->getData('href'));
}
}
@@ -93,6 +93,7 @@ public function getTitle()
* if title will be blank string, page identifier will be used.
*
* @return string
+ * @throws Mage_Core_Model_Store_Exception
*/
public function getAnchorText()
{
@@ -101,14 +102,27 @@ public function getAnchorText()
} elseif ($this->getTitle()) {
$this->_anchorText = $this->getTitle();
} elseif ($this->getData('href')) {
- $this->_anchorText = Mage::getResourceSingleton('cms/page')->setStore(Mage::app()->getStore())
- ->getCmsPageTitleByIdentifier($this->getData('href'));
+ $this->_anchorText = $this->getCmsPageTitleByIdentifier($this->getData('href'));
} elseif ($this->getData('page_id')) {
- $this->_anchorText = Mage::getResourceSingleton('cms/page')->getCmsPageTitleById($this->getData('page_id'));
+ $this->_anchorText = $this->getCmsPageTitleById($this->getData('page_id'));
} else {
$this->_anchorText = $this->getData('href');
}
return $this->_anchorText;
}
+
+ protected function getCmsPageTitleById(int|string $pageId): string
+ {
+ return Mage::getResourceSingleton('cms/page')->getCmsPageTitleById($pageId);
+ }
+
+ /**
+ * @throws Mage_Core_Model_Store_Exception
+ */
+ protected function getCmsPageTitleByIdentifier(int|string $identifier): string
+ {
+ return Mage::getResourceSingleton('cms/page')->setStore(Mage::app()->getStore())
+ ->getCmsPageTitleByIdentifier($identifier);
+ }
}
diff --git a/app/code/core/Mage/Core/Helper/Array.php b/app/code/core/Mage/Core/Helper/Array.php
index ef9b5ff64dd..cf9b2cf73b3 100644
--- a/app/code/core/Mage/Core/Helper/Array.php
+++ b/app/code/core/Mage/Core/Helper/Array.php
@@ -38,12 +38,10 @@ public function mergeRecursiveWithoutOverwriteNumKeys(array $baseArray, array $m
} else {
$baseArray[$key] = $value;
}
+ } elseif ($key) {
+ $baseArray[$key] = $value;
} else {
- if ($key) {
- $baseArray[$key] = $value;
- } else {
- $baseArray[] = $value;
- }
+ $baseArray[] = $value;
}
}
diff --git a/app/code/core/Mage/Index/Block/Adminhtml/Process/Grid.php b/app/code/core/Mage/Index/Block/Adminhtml/Process/Grid.php
index 9daee9c0fbd..b9c13823fdb 100644
--- a/app/code/core/Mage/Index/Block/Adminhtml/Process/Grid.php
+++ b/app/code/core/Mage/Index/Block/Adminhtml/Process/Grid.php
@@ -52,6 +52,7 @@ public function __construct()
* Prepare grid collection
*
* @return $this
+ * @throws Exception
*/
protected function _prepareCollection()
{
@@ -66,6 +67,7 @@ protected function _prepareCollection()
* Add name and description to collection elements
*
* @return $this
+ * @throws Mage_Core_Exception
*/
protected function _afterLoadCollection()
{
@@ -89,10 +91,10 @@ protected function _afterLoadCollection()
* Prepare grid columns
*
* @return $this
+ * @throws Exception
*/
protected function _prepareColumns()
{
- $baseUrl = $this->getUrl();
$this->addColumn('indexer_code', [
'header' => Mage::helper('index')->__('Index'),
'width' => '180',
@@ -183,16 +185,16 @@ public function decorateStatus($value, $row, $column, $isExport)
$class = '';
switch ($row->getStatus()) {
case Mage_Index_Model_Process::STATUS_PENDING:
- $class = 'grid-severity-notice';
+ $class = self::CSS_SEVERITY_NOTICE;
break;
case Mage_Index_Model_Process::STATUS_RUNNING:
- $class = 'grid-severity-major';
+ $class = self::CSS_SEVERITY_MAJOR;
break;
case Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX:
- $class = 'grid-severity-critical';
+ $class = self::CSS_SEVERITY_CRITICAL;
break;
}
- return '' . $value . '';
+ return sprintf(self::PATTERN_SEVERITY, $class, $value);
}
/**
@@ -210,13 +212,13 @@ public function decorateUpdateRequired($value, $row, $column, $isExport)
$class = '';
switch ($row->getUpdateRequired()) {
case 0:
- $class = 'grid-severity-notice';
+ $class = self::CSS_SEVERITY_NOTICE;
break;
case 1:
- $class = 'grid-severity-critical';
+ $class = self::CSS_SEVERITY_CRITICAL;
break;
}
- return '' . $value . '';
+ return sprintf(self::PATTERN_SEVERITY, $class, $value);
}
/**
diff --git a/app/code/core/Mage/Index/Model/Indexer.php b/app/code/core/Mage/Index/Model/Indexer.php
index d2aec7c6948..92b8672b159 100644
--- a/app/code/core/Mage/Index/Model/Indexer.php
+++ b/app/code/core/Mage/Index/Model/Indexer.php
@@ -84,7 +84,7 @@ public function getProcessesCollection()
* Get index process by specific id
*
* @param int $processId
- * @return Mage_Index_Model_Process | false
+ * @return Mage_Index_Model_Process|false
*/
public function getProcessById($processId)
{
diff --git a/app/code/core/Mage/Index/Model/Process.php b/app/code/core/Mage/Index/Model/Process.php
index 504c19a602e..9cc4da17fde 100644
--- a/app/code/core/Mage/Index/Model/Process.php
+++ b/app/code/core/Mage/Index/Model/Process.php
@@ -23,6 +23,10 @@
* @method string getIndexCode()
* @method string getIndexerCode()
* @method $this setIndexerCode(string $value)
+ * @method string getName()
+ * @method $this setName(string $value)
+ * @method string getDescription()
+ * @method $this setDescription(string $value)
* @method string getStatus()
* @method $this setStatus(string $value)
* @method string getStartedAt()
@@ -33,6 +37,8 @@
* @method $this setMode(string $value)
* @method bool getForcePartialReindex()
* @method $this setForcePartialReindex(bool $value)
+ * @method int getUpdateRequired()
+ * @method $this setUpdateRequired(int $value)
*/
class Mage_Index_Model_Process extends Mage_Core_Model_Abstract
{
diff --git a/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php b/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php
index 1bcce912c74..c6c8b479679 100644
--- a/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php
+++ b/app/code/core/Mage/Reports/Model/Resource/Report/Collection.php
@@ -39,7 +39,7 @@ class Mage_Reports_Model_Resource_Report_Collection
/**
* Report period
*
- * @var int
+ * @var string
*/
protected $_period;
@@ -76,7 +76,7 @@ protected function _construct() {}
/**
* Set period
*
- * @param int $period
+ * @param string $period
* @return $this
*/
public function setPeriod($period)
diff --git a/composer.json b/composer.json
index ccebd635525..b01378a3592 100644
--- a/composer.json
+++ b/composer.json
@@ -104,6 +104,7 @@
}
],
"autoload-dev": {
+ "classmap": ["app/code/*/*/*/controllers"],
"psr-4": {
"OpenMage\\Tests\\Unit\\": "tests/unit"
}
@@ -155,9 +156,9 @@
"phpmd": "vendor/bin/phpmd app/code/core/Mage text .phpmd.dist.xml --color --cache --baseline-file .phpmd.dist.baseline.xml",
"phpstan": "XDEBUG_MODE=off php vendor/bin/phpstan analyze",
"phpstan:baseline": "XDEBUG_MODE=off php vendor/bin/phpstan analyze -b .phpstan.dist.baseline.neon",
- "phpunit:test": "XDEBUG_MODE=off php vendor/bin/phpunit --configuration .phpunit.dist.xml --no-coverage",
- "phpunit:coverage": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --testdox",
- "phpunit:coverage-local": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --coverage-html build/coverage",
+ "phpunit:test": "XDEBUG_MODE=off php vendor/bin/phpunit --configuration .phpunit.dist.xml --testsuite Base,Error,Mage,Varien --no-coverage",
+ "phpunit:coverage": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --testsuite Base,Error,Mage,Varien --testdox",
+ "phpunit:coverage-local": "XDEBUG_MODE=coverage php vendor/bin/phpunit --configuration .phpunit.dist.xml --testsuite Base,Error,Mage,Varien --coverage-html build/coverage",
"rector:test": "vendor/bin/rector process --config .rector.php --dry-run",
"rector:fix": "vendor/bin/rector process --config .rector.php",
"test": [
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 10122badea4..686c08cb758 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -7,3 +7,5 @@
require_once __DIR__ . '/../errors/processor.php';
ini_set('error_reporting', -1);
+
+$_SERVER['TEST_ROOT'] = __DIR__;
diff --git a/tests/unit/Base/ClassLoadingTest.php b/tests/unit/Base/ClassLoadingTest.php
index 1a843f4cb53..8832abdce76 100644
--- a/tests/unit/Base/ClassLoadingTest.php
+++ b/tests/unit/Base/ClassLoadingTest.php
@@ -23,12 +23,11 @@
class ClassLoadingTest extends TestCase
{
/**
- * @group Base
* @dataProvider provideClassExistsData
*/
public function testClassExists(bool $expectedResult, string $class): void
{
- $this->assertSame($expectedResult, class_exists($class));
+ static::assertSame($expectedResult, class_exists($class));
}
public function provideClassExistsData(): Generator
diff --git a/tests/unit/Base/DefaultConfigTest.php b/tests/unit/Base/DefaultConfigTest.php
index 36735a2ed74..273ffea7335 100644
--- a/tests/unit/Base/DefaultConfigTest.php
+++ b/tests/unit/Base/DefaultConfigTest.php
@@ -20,18 +20,17 @@
use Generator;
use Mage;
use Mage_Adminhtml_Helper_Dashboard_Data;
+use Mage_Core_Model_Store;
use PHPUnit\Framework\TestCase;
class DefaultConfigTest extends TestCase
{
/**
* @dataProvider provideGetStoreConfig
- * @group Base
- * @group Default_Config
*/
- public function testGetStoreConfig(string $expectedResult, string $path, $store = null): void
+ public function testGetStoreConfig(string $expectedResult, string $path, bool|int|Mage_Core_Model_Store|null|string $store = null): void
{
- $this->assertSame($expectedResult, Mage::getStoreConfig($path, $store));
+ static::assertSame($expectedResult, Mage::getStoreConfig($path, $store));
}
diff --git a/tests/unit/Base/XmlFileLoadingTest.php b/tests/unit/Base/XmlFileLoadingTest.php
index 903a34d7b87..b94277fd373 100644
--- a/tests/unit/Base/XmlFileLoadingTest.php
+++ b/tests/unit/Base/XmlFileLoadingTest.php
@@ -25,7 +25,6 @@
class XmlFileLoadingTest extends TestCase
{
/**
- * @group Base
* @dataProvider provideXmlFiles
*/
public function testFileLoading(string $filepath): void
@@ -36,11 +35,10 @@ public function testFileLoading(string $filepath): void
SimpleXMLElement::class,
LIBXML_PEDANTIC, //not needed by OpenMage, but good to test more strictly
);
- $this->assertNotEmpty($simplexml->asXML());
+ static::assertNotEmpty($simplexml->asXML());
}
/**
- * @group Base
* @dataProvider provideXmlFiles
*/
public function testXmlReaderIsValid(string $filepath): void
@@ -48,7 +46,7 @@ public function testXmlReaderIsValid(string $filepath): void
/** @var XMLReader $xml */
$xml = XMLReader::open($filepath);
$xml->setParserProperty(XMLReader::VALIDATE, true);
- $this->assertTrue($xml->isValid());
+ static::assertTrue($xml->isValid());
}
public function provideXmlFiles(): Generator
diff --git a/tests/unit/Error/ProcessorTest.php b/tests/unit/Error/ProcessorTest.php
index 3a7ce922fb4..12085d32518 100644
--- a/tests/unit/Error/ProcessorTest.php
+++ b/tests/unit/Error/ProcessorTest.php
@@ -39,14 +39,13 @@ public function tearDown(): void
/**
* @dataProvider provideGetHostUrl
- * @group Error
*/
public function testGetHostUrl(string $expectedResult, array $serverVars): void
{
foreach ($serverVars as $serverVar => $value) {
$_SERVER[$serverVar] = $value;
}
- $this->assertSame($expectedResult, $this->subject->getHostUrl());
+ static::assertSame($expectedResult, $this->subject->getHostUrl());
}
public function provideGetHostUrl(): Generator
diff --git a/tests/unit/Mage/Admin/Helper/BlockTest.php b/tests/unit/Mage/Admin/Helper/BlockTest.php
index a600f34197f..b0c7915e431 100644
--- a/tests/unit/Mage/Admin/Helper/BlockTest.php
+++ b/tests/unit/Mage/Admin/Helper/BlockTest.php
@@ -19,35 +19,33 @@
use Mage;
use Mage_Admin_Helper_Block as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class BlockTest extends TestCase
+class BlockTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('admin/block');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('admin/block');
}
/**
* @covers Mage_Admin_Helper_Block::isTypeAllowed()
- * @group Mage_Admin
- * @group Mage_Admin_Helper
+ * @group Helper
*/
public function testIsTypeAllowed(): void
{
- $this->assertFalse($this->subject->isTypeAllowed('some-type'));
+ static::assertFalse(self::$subject->isTypeAllowed('some-type'));
}
/**
* @covers Mage_Admin_Helper_Block::getDisallowedBlockNames()
- * @group Mage_Admin
- * @group Mage_Admin_Helper
+ * @group Helper
*/
public function testGetDisallowedBlockNames(): void
{
- $this->assertSame(['install/end'], $this->subject->getDisallowedBlockNames());
+ static::assertSame(['install/end'], self::$subject->getDisallowedBlockNames());
}
}
diff --git a/tests/unit/Mage/Admin/Helper/DataTest.php b/tests/unit/Mage/Admin/Helper/DataTest.php
index 392bc72acdc..088c1b7be64 100644
--- a/tests/unit/Mage/Admin/Helper/DataTest.php
+++ b/tests/unit/Mage/Admin/Helper/DataTest.php
@@ -19,35 +19,33 @@
use Mage;
use Mage_Admin_Helper_Data as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('admin/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('admin/data');
}
/**
* @covers Mage_Admin_Helper_Data::generateResetPasswordLinkToken()
- * @group Mage_Admin
- * @group Mage_Admin_Helper
+ * @group Helper
*/
public function testGenerateResetPasswordLinkToken(): void
{
- $this->assertIsString($this->subject->generateResetPasswordLinkToken());
+ static::assertIsString(self::$subject->generateResetPasswordLinkToken());
}
/**
* @covers Mage_Admin_Helper_Data::getResetPasswordLinkExpirationPeriod()
- * @group Mage_Admin
- * @group Mage_Admin_Helper
+ * @group Helper
*/
public function testGetResetPasswordLinkExpirationPeriod(): void
{
- $this->assertIsInt($this->subject->getResetPasswordLinkExpirationPeriod());
+ static::assertIsInt(self::$subject->getResetPasswordLinkExpirationPeriod());
}
}
diff --git a/tests/unit/Mage/Admin/Helper/VariableTest.php b/tests/unit/Mage/Admin/Helper/VariableTest.php
index dc9dc1c0e6f..8b88696b01c 100644
--- a/tests/unit/Mage/Admin/Helper/VariableTest.php
+++ b/tests/unit/Mage/Admin/Helper/VariableTest.php
@@ -19,25 +19,24 @@
use Mage;
use Mage_Admin_Helper_Variable as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class VariableTest extends TestCase
+class VariableTest extends OpenMageTest
{
- public Subject $subject;
+ public static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('admin/variable');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('admin/variable');
}
/**
* @covers Mage_Admin_Helper_Variable::isPathAllowed()
- * @group Mage_Admin
- * @group Mage_Admin_Helper
+ * @group Helper
*/
public function testIsPathAllowed(): void
{
- $this->assertIsBool($this->subject->isPathAllowed(''));
+ static::assertIsBool(self::$subject->isPathAllowed(''));
}
}
diff --git a/tests/unit/Mage/Admin/Model/BlockTest.php b/tests/unit/Mage/Admin/Model/BlockTest.php
index 6bcffea0a5e..7a19854ae86 100644
--- a/tests/unit/Mage/Admin/Model/BlockTest.php
+++ b/tests/unit/Mage/Admin/Model/BlockTest.php
@@ -17,63 +17,44 @@
namespace OpenMage\Tests\Unit\Mage\Admin\Model;
-use Generator;
+use Exception;
use Mage;
use Mage_Admin_Model_Block as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Admin\Model\BlockTrait;
-class BlockTest extends TestCase
+class BlockTest extends OpenMageTest
{
- public Subject $subject;
+ use BlockTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('admin/block');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('admin/block');
}
/**
- * @dataProvider provideValidateData
- * @param array $expectedResult
+ * @dataProvider provideValidateAdminBlockData
+ * @param true|array $expectedResult
*
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
+ * @throws Exception
*/
- public function testValidate(array $expectedResult, array $methods): void
+ public function testValidate(bool|array $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods([
- 'getBlockName',
- 'getIsAllowed',
- ])
- ->getMock();
-
- $mock->method('getBlockName')->willReturn($methods['getBlockName']);
- $mock->method('getIsAllowed')->willReturn($methods['getIsAllowed']);
- $this->assertEquals($expectedResult, $mock->validate());
- }
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- public function provideValidateData(): Generator
- {
- yield 'errors' => [
- [
- 0 => 'Block Name is required field.',
- 1 => 'Block Name is incorrect.',
- 2 => 'Is Allowed is required field.',
- ],
- [
- 'getBlockName' => '',
- 'getIsAllowed' => '',
- ],
- ];
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertEquals($expectedResult, $mock->validate());
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testIsTypeAllowed(): void
{
- $this->assertIsBool($this->subject->isTypeAllowed('invalid-type'));
+ static::assertIsBool(self::$subject->isTypeAllowed('invalid-type'));
}
}
diff --git a/tests/unit/Mage/Admin/Model/ConfigTest.php b/tests/unit/Mage/Admin/Model/ConfigTest.php
index ccacf778e3b..71cdd96c7e0 100644
--- a/tests/unit/Mage/Admin/Model/ConfigTest.php
+++ b/tests/unit/Mage/Admin/Model/ConfigTest.php
@@ -20,52 +20,48 @@
use Mage;
use Mage_Admin_Model_Acl;
use Mage_Admin_Model_Config as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Simplexml_Config;
-class ConfigTest extends TestCase
+class ConfigTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('admin/config');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('admin/config');
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testGetAclAssert(): void
{
- $this->assertFalse($this->subject->getAclAssert(''));
+ static::assertFalse(self::$subject->getAclAssert(''));
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testGetAclPrivilegeSet(): void
{
- $this->assertFalse($this->subject->getAclPrivilegeSet());
+ static::assertFalse(self::$subject->getAclPrivilegeSet());
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testLoadAclResources(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->loadAclResources(new Mage_Admin_Model_Acl()));
+ static::assertInstanceOf(Subject::class, self::$subject->loadAclResources(new Mage_Admin_Model_Acl()));
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testGetAdminhtmlConfig(): void
{
- $this->assertInstanceOf(Varien_Simplexml_Config::class, $this->subject->getAdminhtmlConfig());
+ static::assertInstanceOf(Varien_Simplexml_Config::class, self::$subject->getAdminhtmlConfig());
}
}
diff --git a/tests/unit/Mage/Admin/Model/UserTest.php b/tests/unit/Mage/Admin/Model/UserTest.php
index 98f341fc1f2..ddcb6d56f19 100644
--- a/tests/unit/Mage/Admin/Model/UserTest.php
+++ b/tests/unit/Mage/Admin/Model/UserTest.php
@@ -17,249 +17,152 @@
namespace OpenMage\Tests\Unit\Mage\Admin\Model;
-use Generator;
use Mage;
use Mage_Admin_Model_User as Subject;
use Mage_Core_Exception;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Admin\Model\UserTrait;
-class UserTest extends TestCase
+class UserTest extends OpenMageTest
{
- public Subject $subject;
+ use UserTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('admin/user');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('admin/user');
}
/**
* @dataProvider provideAuthenticateData
- * @param array|true $expectedResult
* @group Model
- * @group Mage_Admin
- * @group Mage_Admin_Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
- public function testAuthenticate($expectedResult, array $methods): void
+ public function testAuthenticate(bool|string $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods([
- 'loadByUsername',
- 'getId',
- 'getUsername',
- 'getPassword',
- 'getIsActive',
- 'validatePasswordHash',
- 'hasAssigned2Role',
- ])
- ->getMock();
+ $defaultMethods = ['loadByUsername' => self::WILL_RETURN_SELF];
+ $methods = array_merge($defaultMethods, $methods);
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('loadByUsername')->willReturnSelf();
- $mock->method('getId')->willReturn($methods['getId']);
- // $mock->expects($this->any())->method('getUsername')->willReturn($methods['getUsername']);
- $mock->method('getPassword')->willReturn($methods['getPassword']);
- $mock->method('validatePasswordHash')->willReturn($methods['validatePasswordHash']);
- $mock->method('getIsActive')->willReturn($methods['getIsActive']);
- $mock->method('hasAssigned2Role')->willReturn($methods['hasAssigned2Role']);
+ static::assertInstanceOf(Subject::class, $mock);
try {
- $this->assertSame($expectedResult, $mock->authenticate($methods['getUsername'], $methods['getPassword']));
+ static::assertSame($expectedResult, $mock->authenticate($methods['getUsername'], $methods['getPassword']));
} catch (Mage_Core_Exception $exception) {
- $this->assertSame($expectedResult, $exception->getMessage());
+ static::assertSame($expectedResult, $exception->getMessage());
}
}
- public function provideAuthenticateData(): Generator
- {
- yield 'pass' => [
- true,
- [
- 'getId' => '1',
- 'getUsername' => 'admin',
- 'getPassword' => 'veryl0ngpassw0rd',
- 'getIsActive' => '1',
- 'validatePasswordHash' => true,
- 'hasAssigned2Role' => true,
- ],
- ];
- yield 'fail #1 inactive' => [
- 'This account is inactive.',
- [
- 'getId' => '1',
- 'getUsername' => 'admin',
- 'getPassword' => 'veryl0ngpassw0rd',
- 'getIsActive' => '0',
- 'validatePasswordHash' => true,
- 'hasAssigned2Role' => true,
- ],
- ];
- yield 'fail #2 invalid hash' => [
- false,
- [
- 'getId' => '1',
- 'getUsername' => 'admin',
- 'getPassword' => 'veryl0ngpassw0rd',
- 'getIsActive' => '1',
- 'validatePasswordHash' => false,
- 'hasAssigned2Role' => true,
- ],
- ];
- yield 'fail #3 no role assigned' => [
- 'Access denied.',
- [
- 'getId' => '1',
- 'getUsername' => 'admin',
- 'getPassword' => 'veryl0ngpassw0rd',
- 'getIsActive' => '1',
- 'validatePasswordHash' => true,
- 'hasAssigned2Role' => false,
- ],
- ];
- }
-
/**
- * @dataProvider provideValidateData
+ * @dataProvider provideValidateAdminUserData
* @param array|true $expectedResult
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testValidate($expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods([
- 'hasNewPassword',
- 'getNewPassword',
- 'hasPassword',
- 'getPassword',
- ])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('hasNewPassword')->willReturn($methods['hasNewPassword']);
- $mock->method('getNewPassword')->willReturn($methods['getNewPassword']);
- $mock->method('hasPassword')->willReturn($methods['hasPassword']);
- $mock->method('getPassword')->willReturn($methods['getPassword']);
- $this->assertSame($expectedResult, $mock->validate());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->validate());
}
- public function provideValidateData(): Generator
- {
- yield 'fail #1' => [
- [
- 0 => 'User Name is required field.',
- 1 => 'First Name is required field.',
- 2 => 'Last Name is required field.',
- 3 => 'Please enter a valid email.',
- 4 => 'Password must be at least of 14 characters.',
- 5 => 'Password must include both numeric and alphabetic characters.',
- ],
- [
- 'hasNewPassword' => true,
- 'getNewPassword' => '123',
- 'hasPassword' => false,
- 'getPassword' => '456',
- ],
- ];
- yield 'fails #2' => [
- [
- 0 => 'User Name is required field.',
- 1 => 'First Name is required field.',
- 2 => 'Last Name is required field.',
- 3 => 'Please enter a valid email.',
- 4 => 'Password must be at least of 14 characters.',
- 5 => 'Password must include both numeric and alphabetic characters.',
- ],
- [
- 'hasNewPassword' => false,
- 'getNewPassword' => '123',
- 'hasPassword' => true,
- 'getPassword' => '456',
- ],
- ];
- }
+
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testValidateCurrentPassword(): void
{
- $this->assertIsArray($this->subject->validateCurrentPassword(''));
- $this->assertIsArray($this->subject->validateCurrentPassword('123'));
+ static::assertIsArray(self::$subject->validateCurrentPassword(''));
+ static::assertIsArray(self::$subject->validateCurrentPassword('123'));
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testLoadByUsername(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->loadByUsername('invalid-user'));
+ static::assertInstanceOf(Subject::class, self::$subject->loadByUsername('invalid-user'));
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testHasAssigned2Role(): void
{
- $this->assertIsArray($this->subject->hasAssigned2Role(1));
+ static::assertIsArray(self::$subject->hasAssigned2Role(1));
}
/**
* @group Model
- * @group Mage_Admin
- * @group Mage_Admin_Model
*/
public function testChangeResetPasswordLinkToken(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->changeResetPasswordLinkToken('123'));
+ static::assertInstanceOf(Subject::class, self::$subject->changeResetPasswordLinkToken('123'));
}
/**
* @dataProvider provideIsResetPasswordLinkTokenExpiredData
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
public function testIsResetPasswordLinkTokenExpired(bool $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods([
- 'getRpToken',
- 'getRpTokenCreatedAt',
- ])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getRpToken')->willReturn($methods['getRpToken']);
- $mock->method('getRpTokenCreatedAt')->willReturn($methods['getRpTokenCreatedAt']);
- $this->assertSame($expectedResult, $mock->isResetPasswordLinkTokenExpired());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->isResetPasswordLinkTokenExpired());
}
- public function provideIsResetPasswordLinkTokenExpiredData(): Generator
+ /**
+ * @group Model
+ */
+ public function testSendPasswordResetConfirmationEmail(): void
{
- yield '#1' => [
- true,
- [
- 'getRpToken' => '',
- 'getRpTokenCreatedAt' => '',
- ],
- ];
- yield '#2' => [
- true,
- [
- 'getRpToken' => '1',
- 'getRpTokenCreatedAt' => '0',
- ],
- ];
+ static::assertInstanceOf(Subject::class, self::$subject->sendPasswordResetConfirmationEmail());
}
/**
- * @group Mage_Admin
- * @group Mage_Admin_Model
+ * @group Model
*/
- public function testSendPasswordResetConfirmationEmail(): void
+ public function testCleanPasswordsValidationData(): void
+ {
+ self::$subject->setData('password', 'test123');
+ self::$subject->setData('current_password', 'current123');
+ self::$subject->setData('new_password', 'new123');
+ self::$subject->setData('password_confirmation', 'confirm123');
+
+ self::$subject->cleanPasswordsValidationData();
+
+ static::assertNull(self::$subject->getData('password'));
+ static::assertNull(self::$subject->getData('current_password'));
+ static::assertNull(self::$subject->getData('new_password'));
+ static::assertNull(self::$subject->getData('password_confirmation'));
+ }
+
+ /**
+ * @group Model
+ */
+ public function testGetMinAdminPasswordLength(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->sendPasswordResetConfirmationEmail());
+ $methods = ['getStoreConfigAsInt' => 10];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame(14, $mock->getMinAdminPasswordLength());
+ }
+
+ /**
+ * @group Model
+ */
+ public function testSendAdminNotification(): void
+ {
+ $methods = ['getUserCreateAdditionalEmail' => ['test@example.com']];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Subject::class, $mock->sendAdminNotification(self::$subject));
}
}
diff --git a/tests/unit/Mage/Admin/Model/VariableTest.php b/tests/unit/Mage/Admin/Model/VariableTest.php
index f5f1b380bf6..c9b9adf9539 100644
--- a/tests/unit/Mage/Admin/Model/VariableTest.php
+++ b/tests/unit/Mage/Admin/Model/VariableTest.php
@@ -17,65 +17,39 @@
namespace OpenMage\Tests\Unit\Mage\Admin\Model;
-use Generator;
+use Exception;
use Mage;
use Mage_Admin_Model_Variable as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Admin\Model\VariableTrait;
-class VariableTest extends TestCase
+class VariableTest extends OpenMageTest
{
- public Subject $subject;
+ use VariableTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('admin/variable');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('admin/variable');
}
/**
- * @dataProvider provideValidateData
- * @group Mage_Admin
- * @group Mage_Admin_Model
- *
- * @param array|true $expectedResult
+ * @dataProvider provideValidateAdminVariableData
+ * @group Model
+ * @throws Exception
*/
- public function testValidate($expectedResult, string $variableName, string $isAllowed): void
+ public function testValidate(bool|array $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getVariableName', 'getIsAllowed'])
- ->getMock();
-
- $mock->method('getVariableName')->willReturn($variableName);
- $mock->method('getIsAllowed')->willReturn($isAllowed);
- $this->assertSame($expectedResult, $mock->validate());
- }
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- public function provideValidateData(): Generator
- {
- yield 'test passes' => [
- true,
- 'test',
- '1',
- ];
- yield 'test error empty' => [
- [0 => 'Variable Name is required field.'],
- '',
- '1',
- ];
- yield 'test error regex' => [
- [0 => 'Variable Name is incorrect.'],
- '#invalid-name#',
- '1',
- ];
- yield 'test error allowed' => [
- [0 => 'Is Allowed is required field.'],
- 'test',
- 'invalid',
- ];
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->validate());
}
public function testIsPathAllowed(): void
{
- $this->assertIsBool($this->subject->isPathAllowed('invalid-path'));
+ static::assertIsBool(self::$subject->isPathAllowed('invalid-path'));
}
}
diff --git a/tests/unit/Mage/AdminNotification/Helper/DataTest.php b/tests/unit/Mage/AdminNotification/Helper/DataTest.php
index e026a3c2330..ffac2976b26 100644
--- a/tests/unit/Mage/AdminNotification/Helper/DataTest.php
+++ b/tests/unit/Mage/AdminNotification/Helper/DataTest.php
@@ -20,43 +20,40 @@
use Mage;
use Mage_AdminNotification_Helper_Data as Subject;
use Mage_AdminNotification_Model_Inbox;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminnotification/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminnotification/data');
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Helper
+ * @group Helper
*/
public function testGetLatestNotice(): void
{
- $this->assertInstanceOf(Mage_AdminNotification_Model_Inbox::class, $this->subject->getLatestNotice());
+ static::assertInstanceOf(Mage_AdminNotification_Model_Inbox::class, self::$subject->getLatestNotice());
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Helper
+ * @group Helper
*/
public function testGetUnreadNoticeCount(): void
{
- $this->assertIsInt($this->subject->getUnreadNoticeCount(99));
+ static::assertIsInt(self::$subject->getUnreadNoticeCount(99));
}
/**
* @covers Mage_AdminNotification_Helper_Data::getPopupObjectUrl()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Helper
+ * @group Helper
*/
public function testGetPopupObjectUrl(): void
{
- $this->assertSame('', $this->subject->getPopupObjectUrl());
+ static::assertSame('', self::$subject->getPopupObjectUrl());
}
}
diff --git a/tests/unit/Mage/AdminNotification/Model/FeedTest.php b/tests/unit/Mage/AdminNotification/Model/FeedTest.php
index 50a35f91b53..7d2b782dbff 100644
--- a/tests/unit/Mage/AdminNotification/Model/FeedTest.php
+++ b/tests/unit/Mage/AdminNotification/Model/FeedTest.php
@@ -19,52 +19,47 @@
use Mage;
use Mage_AdminNotification_Model_Feed as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use SimpleXMLElement;
-class FeedTest extends TestCase
+class FeedTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = Mage::getModel('adminnotification/feed');
+ self::$subject = Mage::getModel('adminnotification/feed');
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testGetFeedUrl(): void
{
- $this->assertIsString($this->subject->getFeedUrl());
+ static::assertIsString(self::$subject->getFeedUrl());
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testCheckUpdate(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->checkUpdate());
+ static::assertInstanceOf(Subject::class, self::$subject->checkUpdate());
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testGetFeedData(): void
{
- $this->assertInstanceOf(SimpleXMLElement::class, $this->subject->getFeedData());
+ static::assertInstanceOf(SimpleXMLElement::class, self::$subject->getFeedData());
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testGetFeedXml(): void
{
- $this->assertInstanceOf(SimpleXMLElement::class, $this->subject->getFeedXml());
+ static::assertInstanceOf(SimpleXMLElement::class, self::$subject->getFeedXml());
}
}
diff --git a/tests/unit/Mage/AdminNotification/Model/InboxTest.php b/tests/unit/Mage/AdminNotification/Model/InboxTest.php
index e10687a1374..2568546f08d 100644
--- a/tests/unit/Mage/AdminNotification/Model/InboxTest.php
+++ b/tests/unit/Mage/AdminNotification/Model/InboxTest.php
@@ -17,77 +17,55 @@
namespace OpenMage\Tests\Unit\Mage\AdminNotification\Model;
-use Generator;
use Mage;
use Mage_AdminNotification_Model_Inbox as Subject;
use Mage_Core_Exception;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\AdminNotification\Model\InboxTrait;
-class InboxTest extends TestCase
+class InboxTest extends OpenMageTest
{
+ use InboxTrait;
+
public const TITLE = 'PhpUnit test';
public const URL = 'https://openmage.org';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('adminnotification/inbox');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('adminnotification/inbox');
}
/**
* @dataProvider provideGetSeverities
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
- public function testGetSeverities($expectedResult, ?int $severity): void
+ public function testGetSeverities(array|string|null $expectedResult, ?int $severity): void
{
- $this->assertSame($expectedResult, $this->subject->getSeverities($severity));
- }
-
- public function provideGetSeverities(): Generator
- {
- yield 'null' => [
- [
- Subject::SEVERITY_CRITICAL => 'critical',
- Subject::SEVERITY_MAJOR => 'major',
- Subject::SEVERITY_MINOR => 'minor',
- Subject::SEVERITY_NOTICE => 'notice',
- ],
- null,
- ];
- yield 'valid' => [
- 'critical',
- Subject::SEVERITY_CRITICAL,
- ];
- yield 'invalid' => [
- null,
- 0,
- ];
+ static::assertSame($expectedResult, self::$subject->getSeverities($severity));
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testLoadLatestNotice(bool $delete = false): void
{
- $result = $this->subject->loadLatestNotice();
- $this->assertInstanceOf(Subject::class, $result);
+ $result = self::$subject->loadLatestNotice();
+ static::assertInstanceOf(Subject::class, $result);
if ($delete) {
$result->delete();
}
}
/**
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAdd(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->add(
+ static::assertInstanceOf(Subject::class, self::$subject->add(
Subject::SEVERITY_CRITICAL,
self::TITLE,
[__METHOD__],
@@ -98,59 +76,54 @@ public function testAdd(): void
/**
* @covers Mage_AdminNotification_Model_Inbox::add()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAddException(): void
{
try {
- $this->subject->add(0, self::TITLE, __METHOD__);
+ self::$subject->add(0, self::TITLE, __METHOD__);
} catch (Mage_Core_Exception $e) {
- $this->assertSame('Wrong message type', $e->getMessage());
+ static::assertSame('Wrong message type', $e->getMessage());
}
}
/**
* @covers Mage_AdminNotification_Model_Inbox::addCritical()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAddCritical(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addCritical(self::TITLE, __METHOD__));
+ static::assertInstanceOf(Subject::class, self::$subject->addCritical(self::TITLE, __METHOD__));
$this->testLoadLatestNotice(true);
}
/**
* @covers Mage_AdminNotification_Model_Inbox::addMajor()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAddMajor(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addMajor(self::TITLE, __METHOD__));
+ static::assertInstanceOf(Subject::class, self::$subject->addMajor(self::TITLE, __METHOD__));
$this->testLoadLatestNotice(true);
}
/**
* @covers Mage_AdminNotification_Model_Inbox::addMinor()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAddMinor(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addMinor(self::TITLE, __METHOD__));
+ static::assertInstanceOf(Subject::class, self::$subject->addMinor(self::TITLE, __METHOD__));
$this->testLoadLatestNotice(true);
}
/**
* @covers Mage_AdminNotification_Model_Inbox::addNotice()
- * @group Mage_AdminNotification
- * @group Mage_AdminNotification_Model
+ * @group Model
*/
public function testAddNotice(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addNotice(self::TITLE, __METHOD__));
+ static::assertInstanceOf(Subject::class, self::$subject->addNotice(self::TITLE, __METHOD__));
$this->testLoadLatestNotice(true);
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/CacheTest.php b/tests/unit/Mage/Adminhtml/Block/CacheTest.php
index 7bc9be7b6a0..c977feefdbf 100644
--- a/tests/unit/Mage/Adminhtml/Block/CacheTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/CacheTest.php
@@ -17,39 +17,35 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block;
-use Mage;
use Mage_Adminhtml_Block_Cache as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CacheTest extends TestCase
+class CacheTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = new Subject();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetFlushStorageUrl(): void
{
- $this->assertStringStartsWith('http', $this->subject->getFlushStorageUrl());
+ static::assertStringStartsWith('http', self::$subject->getFlushStorageUrl());
}
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetFlushSystemUrl(): void
{
- $this->assertStringStartsWith('http', $this->subject->getFlushSystemUrl());
+ static::assertStringStartsWith('http', self::$subject->getFlushSystemUrl());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php
index e952f787e7e..1038c686dd8 100644
--- a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/AddressesTest.php
@@ -17,39 +17,26 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Customer\Edit\Tab;
-use Mage;
use Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses as Subject;
+use Mage_Core_Exception;
use Mage_Customer_Model_Customer;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class AddressesTest extends TestCase
+class AddressesTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = new Subject();
- }
-
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
+ * @throws Mage_Core_Exception
*/
public function testInitForm(): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getRegistryCurrentCustomer', 'isReadonly'])
- ->getMock();
-
- $mock
- ->method('getRegistryCurrentCustomer')
- ->willReturn(new Mage_Customer_Model_Customer());
-
- $mock
- ->method('isReadonly')
- ->willReturn(true);
-
- $this->assertInstanceOf(Subject::class, $mock->initForm());
+ $methods = [
+ 'getRegistryCurrentCustomer' => new Mage_Customer_Model_Customer(),
+ 'isReadonly' => true,
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Subject::class, $mock->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php
index 7fa0868a854..8b4eed91a80 100644
--- a/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/Customer/Edit/Tab/NewsletterTest.php
@@ -17,37 +17,23 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Customer\Edit\Tab;
-use Mage;
use Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter as Subject;
use Mage_Customer_Model_Customer;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class NewsletterTest extends TestCase
+class NewsletterTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = new Subject();
- }
-
/**
- *
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testInitForm(): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getRegistryCurrentCustomer'])
- ->getMock();
-
- $mock
- ->method('getRegistryCurrentCustomer')
- // phpcs:ignore Ecg.Classes.ObjectInstantiation.DirectInstantiation
- ->willReturn(new Mage_Customer_Model_Customer());
+ $methods = [
+ 'getRegistryCurrentCustomer' => new Mage_Customer_Model_Customer(),
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $this->assertInstanceOf(Subject::class, $mock->initForm());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Subject::class, $mock->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php b/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php
index 8e94fc326a1..4363da92935 100644
--- a/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/System/Cache/Form/FormTest.php
@@ -17,25 +17,24 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Cache\Form;
-use Mage;
use Mage_Adminhtml_Block_System_Cache_Form as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class FormTest extends TestCase
+class FormTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Adminhtml
+ * @group Block
*/
public function testInitForm(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->initForm());
+ static::assertInstanceOf(Subject::class, self::$subject->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php b/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php
index aea02165241..94fdbd31319 100644
--- a/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/System/Config/Form/FormTest.php
@@ -17,25 +17,24 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Config\Form;
-use Mage;
use Mage_Adminhtml_Block_System_Config_Form as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class FormTest extends TestCase
+class FormTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Adminhtml
+ * @group Block
*/
public function testInitForm(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->initForm());
+ static::assertInstanceOf(Subject::class, self::$subject->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php b/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php
index 040cb925445..08f044dd052 100644
--- a/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/System/Convert/Gui/Edit/Tab/ViewTest.php
@@ -17,35 +17,23 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Convert\Gui\Edit\Tab;
-use Mage;
use Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View as Subject;
use Mage_Dataflow_Model_Profile;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ViewTest extends TestCase
+class ViewTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = new Subject();
- }
-
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testInitForm(): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getRegistryCurrentConvertProfile'])
- ->getMock();
-
- $mock
- ->method('getRegistryCurrentConvertProfile')
- ->willReturn(new Mage_Dataflow_Model_Profile());
+ $methods = [
+ 'getRegistryCurrentConvertProfile' => new Mage_Dataflow_Model_Profile(),
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $this->assertInstanceOf(Subject::class, $mock->initForm());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Subject::class, $mock->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php b/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php
index c3c6ea0471c..57e800c373e 100644
--- a/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/System/Convert/Profile/Edit/Tab/EditTest.php
@@ -17,35 +17,23 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\System\Convert\Profile\Edit\Tab;
-use Mage;
use Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit as Subject;
use Mage_Dataflow_Model_Profile;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class EditTest extends TestCase
+class EditTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = new Subject();
- }
-
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testInitForm(): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getRegistryCurrentConvertProfile'])
- ->getMock();
-
- $mock
- ->method('getRegistryCurrentConvertProfile')
- ->willReturn(new Mage_Dataflow_Model_Profile());
+ $methods = [
+ 'getRegistryCurrentConvertProfile' => new Mage_Dataflow_Model_Profile(),
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $this->assertInstanceOf(Subject::class, $mock->initForm());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Subject::class, $mock->initForm());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/TemplateTest.php b/tests/unit/Mage/Adminhtml/Block/TemplateTest.php
index fc8de04ecfc..b5f36e44a73 100644
--- a/tests/unit/Mage/Adminhtml/Block/TemplateTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/TemplateTest.php
@@ -17,62 +17,57 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block;
-use Mage;
use Mage_Adminhtml_Block_Template as Subject;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait;
-use PHPUnit\Framework\TestCase;
-class TemplateTest extends TestCase
+class TemplateTest extends OpenMageTest
{
use CoreTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
* @see Mage_Core_Model_Session::getFormKey()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetFormKey(): void
{
- $this->assertIsString($this->subject->getFormKey());
+ static::assertIsString(self::$subject->getFormKey());
}
/**
* @covers Mage_Adminhtml_Block_Template::isOutputEnabled()
* @dataProvider provideIsOutputEnabled
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testIsOutputEnabled(bool $expectedResult, ?string $moduleName): void
{
- $this->assertSame($expectedResult, $this->subject->isOutputEnabled($moduleName));
+ static::assertSame($expectedResult, self::$subject->isOutputEnabled($moduleName));
}
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testGetModuleName(): void
{
- $this->assertSame('Mage_Adminhtml', $this->subject->getModuleName());
+ static::assertSame('Mage_Adminhtml', self::$subject->getModuleName());
}
/**
* @see Mage_Core_Model_Input_Filter_MaliciousCode::filter()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testMaliciousCodeFilter(): void
{
- $this->assertIsString($this->subject->maliciousCodeFilter(''));
+ static::assertIsString(self::$subject->maliciousCodeFilter(''));
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php b/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php
index 02dd8e3ae1f..7a99dc23eb2 100644
--- a/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/Widget/Grid/ColumnTest.php
@@ -18,26 +18,25 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Widget\Grid;
use Mage_Adminhtml_Block_Widget_Grid_Column as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ColumnTest extends TestCase
+class ColumnTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- $this->subject = new Subject();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testGetType(): void
{
- $this->assertSame('', $this->subject->getType());
+ static::assertSame('', self::$subject->getType());
- $this->subject->setType('text');
- $this->assertSame('text', $this->subject->getType());
+ self::$subject->setType('text');
+ static::assertSame('text', self::$subject->getType());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php b/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php
index 48e003655f4..d15e10fe470 100644
--- a/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php
+++ b/tests/unit/Mage/Adminhtml/Block/Widget/GridTest.php
@@ -17,157 +17,28 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Block\Widget;
-use Generator;
-use Mage;
use Mage_Adminhtml_Block_Widget_Grid as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Adminhtml\Block\Widget\GridTrait;
-class GridTest extends TestCase
+class GridTest extends OpenMageTest
{
- public Subject $subject;
+ use GridTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
* @dataProvider provideAddColumnDefaultData
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Block
+ * @group Block
*/
public function testAddColumnDefaultData(array $expectedResult, array $column): void
{
- $this->assertSame($expectedResult, $this->subject->addColumnDefaultData($column));
- }
-
- public function provideAddColumnDefaultData(): Generator
- {
- yield 'empty' => [
- [],
- [],
- ];
- yield 'index entity_id' => [
- [
- 'index' => 'entity_id',
- 'align' => 'right',
- 'type' => 'number',
- 'width' => '1',
- ],
- [
- 'index' => 'entity_id',
- ],
- ];
- yield 'index entity_id w/ override' => [
- [
- 'index' => 'entity_id',
- 'align' => 'center',
- 'type' => 'text',
- ],
- [
- 'index' => 'entity_id',
- 'align' => 'center',
- 'type' => 'text',
- ],
- ];
- yield 'index array - ref #4475' => [
- [
- 'index' => ['firstname', 'lastname'],
- 'type' => 'concat',
- 'separator' => ' ',
- ],
- [
- 'index' => ['firstname', 'lastname'],
- 'type' => 'concat',
- ],
- ];
- yield 'type action' => [
- [
- 'type' => 'action',
- 'filter' => false,
- 'sortable' => false,
- 'width' => '40',
- 'header' => 'Action',
- ],
- [
- 'type' => 'action',
- ],
- ];
- yield 'type action w/ override' => [
- [
- 'type' => 'action',
- 'header' => 'test',
- 'filter' => false,
- 'sortable' => false,
- 'width' => '40',
- ],
- [
- 'type' => 'action',
- 'header' => 'test',
- ],
- ];
- yield 'type currency' => [
- [
- 'type' => 'currency',
- 'align' => 'right',
- 'index' => 'price',
- 'header' => 'Price',
- ],
- [
- 'type' => 'currency',
- ],
- ];
- yield 'type date' => [
- [
- 'type' => 'date',
- 'width' => '140',
- ],
- [
- 'type' => 'date',
- ],
- ];
- yield 'type datetime' => [
- [
- 'type' => 'datetime',
- 'width' => '170',
- ],
- [
- 'type' => 'datetime',
- ],
- ];
- yield 'type number' => [
- [
- 'type' => 'number',
- 'align' => 'right',
- 'width' => '1',
- ],
- [
- 'type' => 'number',
- ],
- ];
- yield 'type price' => [
- [
- 'type' => 'price',
- 'align' => 'right',
- 'index' => 'price',
- 'header' => 'Price',
- ],
- [
- 'type' => 'price',
- ],
- ];
- yield 'type store' => [
- [
- 'type' => 'store',
- 'index' => 'store_id',
- 'store_view' => true,
- 'width' => '160',
- 'header' => 'Store View',
- ],
- [
- 'type' => 'store',
- ],
- ];
+ static::assertSame($expectedResult, self::$subject->addColumnDefaultData($column));
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php b/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php
index c00118baada..3d8a5df9362 100644
--- a/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/AddressesTest.php
@@ -17,46 +17,35 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper;
-use Generator;
use Mage;
use Mage_Adminhtml_Helper_Addresses as Subject;
use Mage_Customer_Model_Attribute;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Adminhtml\Helper\AddressTrait;
-class AddressesTest extends TestCase
+class AddressesTest extends OpenMageTest
{
- public Subject $subject;
+ use AddressTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/addresses');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/addresses');
}
/**
* @covers Mage_Adminhtml_Helper_Addresses::processStreetAttribute()
* @dataProvider provideProcessStreetAttribute
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testProcessStreetAttribute(int $expectedResult, int $lines): void
{
$attribute = new Mage_Customer_Model_Attribute();
$attribute->setScopeMultilineCount($lines);
- $result = $this->subject->processStreetAttribute($attribute);
- $this->assertSame($expectedResult, $result->getScopeMultilineCount());
- }
-
- public function provideProcessStreetAttribute(): Generator
- {
- yield 'default' => [
- Subject::DEFAULT_STREET_LINES_COUNT,
- 0,
- ];
- yield 'custom' => [
- 4,
- 4,
- ];
+ $result = self::$subject->processStreetAttribute($attribute);
+ static::assertSame($expectedResult, $result->getScopeMultilineCount());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php b/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php
index 1cb1c363a8c..2cc0f4c8ec5 100644
--- a/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/CatalogTest.php
@@ -19,42 +19,39 @@
use Mage;
use Mage_Adminhtml_Helper_Catalog as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CatalogTest extends TestCase
+class CatalogTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/catalog');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/catalog');
}
/**
* @covers Mage_Adminhtml_Helper_Catalog::setAttributeTabBlock()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testSetAttributeTabBlock(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setAttributeTabBlock(''));
+ static::assertInstanceOf(Subject::class, self::$subject->setAttributeTabBlock(''));
}
/**
* @covers Mage_Adminhtml_Helper_Catalog::setCategoryAttributeTabBlock()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testSetCategoryAttributeTabBlock(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setCategoryAttributeTabBlock(''));
+ static::assertInstanceOf(Subject::class, self::$subject->setCategoryAttributeTabBlock(''));
}
/**
* @covers Mage_Adminhtml_Helper_Catalog::getSitemapValidPaths()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetSitemapValidPaths(): void
{
@@ -72,6 +69,6 @@ public function testGetSitemapValidPaths(): void
'skin' => '/skin/*/*',
],
];
- $this->assertSame($assert, $this->subject->getSitemapValidPaths());
+ static::assertSame($assert, self::$subject->getSitemapValidPaths());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php b/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php
index 78c04518855..23f2cf4c17b 100644
--- a/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/ConfigTest.php
@@ -17,74 +17,40 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper;
-use Generator;
use Mage;
use Mage_Adminhtml_Helper_Config as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Adminhtml\Helper\ConfigTrait;
-class ConfigTest extends TestCase
+class ConfigTest extends OpenMageTest
{
- public Subject $subject;
+ use ConfigTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/config');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/config');
}
/**
* @covers Mage_Adminhtml_Helper_Config::getInputTypes()
* @dataProvider provideGetInputTypes
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetInputTypes(array $expectedResult, ?string $inputType): void
{
- $this->assertSame($expectedResult, $this->subject->getInputTypes($inputType));
- }
-
- public function provideGetInputTypes(): Generator
- {
- yield 'null' => [
- [
- 'color' => [
- 'backend_model' => 'adminhtml/system_config_backend_color',
- ],
- ],
- null,
- ];
- yield 'color' => [
- [
- 'backend_model' => 'adminhtml/system_config_backend_color',
- ],
- 'color',
- ];
- yield 'invalid' => [
- [],
- 'invalid',
- ];
+ static::assertSame($expectedResult, self::$subject->getInputTypes($inputType));
}
/**
* @covers Mage_Adminhtml_Helper_Config::getBackendModelByInputType()
* @dataProvider provideGetBackendModelByInputType
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetBackendModelByInputType(?string $expectedResult, string $inputType): void
{
- $this->assertSame($expectedResult, $this->subject->getBackendModelByInputType($inputType));
- }
-
- public function provideGetBackendModelByInputType(): Generator
- {
- yield 'color' => [
- 'adminhtml/system_config_backend_color',
- 'color',
- ];
- yield 'invalid' => [
- null,
- 'invalid',
- ];
+ static::assertSame($expectedResult, self::$subject->getBackendModelByInputType($inputType));
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php b/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php
index 64239b60d40..c94b78698ab 100644
--- a/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/Dashboard/DataTest.php
@@ -20,64 +20,60 @@
use Mage;
use Mage_Adminhtml_Helper_Dashboard_Data as Subject;
use Mage_Core_Model_Resource_Store_Collection;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/dashboard_data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/dashboard_data');
}
/**
* @covers Mage_Adminhtml_Helper_Dashboard_Data::getStores()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetStores(): void
{
- $this->assertInstanceOf(Mage_Core_Model_Resource_Store_Collection::class, $this->subject->getStores());
+ static::assertInstanceOf(Mage_Core_Model_Resource_Store_Collection::class, self::$subject->getStores());
}
/**
* @covers Mage_Adminhtml_Helper_Dashboard_Data::countStores()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testCountStores(): void
{
- $this->assertIsInt($this->subject->countStores());
+ static::assertIsInt(self::$subject->countStores());
}
/**
* @covers Mage_Adminhtml_Helper_Dashboard_Data::getDatePeriods()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetDatePeriods(): void
{
$expectedResult = [
- '24h' => $this->subject->__('Last 24 Hours'),
- '7d' => $this->subject->__('Last 7 Days'),
- '1m' => $this->subject->__('Current Month'),
- '3m' => $this->subject->__('Last 3 Months'),
- '6m' => $this->subject->__('Last 6 Months'),
- '1y' => $this->subject->__('YTD'),
- '2y' => $this->subject->__('2YTD'),
+ '24h' => self::$subject->__('Last 24 Hours'),
+ '7d' => self::$subject->__('Last 7 Days'),
+ '1m' => self::$subject->__('Current Month'),
+ '3m' => self::$subject->__('Last 3 Months'),
+ '6m' => self::$subject->__('Last 6 Months'),
+ '1y' => self::$subject->__('YTD'),
+ '2y' => self::$subject->__('2YTD'),
];
- $this->assertSame($expectedResult, $this->subject->getDatePeriods());
+ static::assertSame($expectedResult, self::$subject->getDatePeriods());
}
/**
* @covers Mage_Adminhtml_Helper_Dashboard_Data::getChartDataHash()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testGetChartDataHash(): void
{
- $this->assertIsString($this->subject->getChartDataHash(''));
+ static::assertIsString(self::$subject->getChartDataHash(''));
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/DataTest.php b/tests/unit/Mage/Adminhtml/Helper/DataTest.php
index bb2d62877f1..825d3ac33c8 100644
--- a/tests/unit/Mage/Adminhtml/Helper/DataTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/DataTest.php
@@ -19,71 +19,66 @@
use Mage;
use Mage_Adminhtml_Helper_Data as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/data');
}
/**
* @covers Mage_Adminhtml_Helper_Data::getUrl()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetUrl(): void
{
- $this->assertIsString($this->subject->getUrl());
+ static::assertIsString(self::$subject->getUrl());
}
/**
* @covers Mage_Adminhtml_Helper_Data::getCurrentUserId()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetCurrentUserId(): void
{
- $this->assertFalse($this->subject->getCurrentUserId());
+ static::assertFalse(self::$subject->getCurrentUserId());
}
/**
* @covers Mage_Adminhtml_Helper_Data::prepareFilterString()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testPrepareFilterString(): void
{
- $this->assertIsArray($this->subject->prepareFilterString(''));
+ static::assertIsArray(self::$subject->prepareFilterString(''));
}
/**
* @covers Mage_Adminhtml_Helper_Data::decodeFilter()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testDecodeFilter(): void
{
$string = '';
- $this->subject->decodeFilter($string);
- $this->assertSame('', $string);
+ self::$subject->decodeFilter($string);
+ static::assertSame('', $string);
}
/**
* @covers Mage_Adminhtml_Helper_Data::isEnabledSecurityKeyUrl()
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testIsEnabledSecurityKeyUrl(): void
{
- $this->assertTrue($this->subject->isEnabledSecurityKeyUrl());
+ static::assertTrue(self::$subject->isEnabledSecurityKeyUrl());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/JsTest.php b/tests/unit/Mage/Adminhtml/Helper/JsTest.php
index 973f3a98930..ac64d904e58 100644
--- a/tests/unit/Mage/Adminhtml/Helper/JsTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/JsTest.php
@@ -17,49 +17,30 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper;
-use Generator;
use Mage;
use Mage_Adminhtml_Helper_Js as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Adminhtml\Helper\JsTrait;
-class JsTest extends TestCase
+class JsTest extends OpenMageTest
{
- public Subject $subject;
+ use JsTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/js');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/js');
}
/**
* @covers Mage_Adminhtml_Helper_Js::decodeGridSerializedInput()
* @dataProvider provideDecodeGridSerializedInput
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testDecodeGridSerializedInput(array $expectedResult, string $encoded): void
{
- $this->assertSame($expectedResult, $this->subject->decodeGridSerializedInput($encoded));
- }
-
- public function provideDecodeGridSerializedInput(): Generator
- {
- yield 'w/o keys' => [
- [
- 0 => 1,
- 1 => 2,
- 2 => 3,
- 3 => 4,
- ],
- '1&2&3&4',
- ];
- yield 'w/ keys' => [
- [
- 1 => [],
- 2 => [],
- ],
- '1=1&2=2',
- ];
+ static::assertSame($expectedResult, self::$subject->decodeGridSerializedInput($encoded));
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php b/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php
index ff17b3b317e..566435234ed 100644
--- a/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/Media/JsTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Adminhtml_Helper_Media_Js as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class JsTest extends TestCase
+class JsTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/media_js');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/media_js');
}
/**
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
public function testDecodeGridSerializedInput(): void
{
- $this->assertIsString($this->subject->getTranslatorScript());
+ static::assertIsString(self::$subject->getTranslatorScript());
}
}
diff --git a/tests/unit/Mage/Adminhtml/Helper/SalesTest.php b/tests/unit/Mage/Adminhtml/Helper/SalesTest.php
index 1e8da01ba12..e77780c1a12 100644
--- a/tests/unit/Mage/Adminhtml/Helper/SalesTest.php
+++ b/tests/unit/Mage/Adminhtml/Helper/SalesTest.php
@@ -17,37 +17,30 @@
namespace OpenMage\Tests\Unit\Mage\Adminhtml\Helper;
-use Generator;
use Mage;
use Mage_Adminhtml_Helper_Sales as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Adminhtml\Helper\SalesTrait;
-class SalesTest extends TestCase
+class SalesTest extends OpenMageTest
{
- public Subject $subject;
+ use SalesTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('adminhtml/sales');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('adminhtml/sales');
}
/**
* @covers Mage_Adminhtml_Helper_Sales::escapeHtmlWithLinks()
* @dataProvider provideDecodeGridSerializedInput
- * @group Mage_Adminhtml
- * @group Mage_Adminhtml_Helper
+ * @group Helper
*/
- public function testEscapeHtmlWithLinks($expectedResult, $data): void
- {
- $this->assertSame($expectedResult, $this->subject->escapeHtmlWithLinks($data, ['a']));
- }
-
- public function provideDecodeGridSerializedInput(): Generator
+ public function testEscapeHtmlWithLinks(string $expectedResult, string $data): void
{
- yield 'test #1' => [
- '<a href="https://localhost">',
- '',
- ];
+ static::assertSame($expectedResult, self::$subject->escapeHtmlWithLinks($data, ['a']));
}
}
diff --git a/tests/unit/Mage/Api/Model/UserTest.php b/tests/unit/Mage/Api/Model/UserTest.php
new file mode 100644
index 00000000000..96156c0adbe
--- /dev/null
+++ b/tests/unit/Mage/Api/Model/UserTest.php
@@ -0,0 +1,35 @@
+getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->validate());
+ }
+}
diff --git a/tests/unit/Mage/Catalog/Helper/CategoryTest.php b/tests/unit/Mage/Catalog/Helper/CategoryTest.php
index 14fa24fc2d6..2c9d16ff8e3 100644
--- a/tests/unit/Mage/Catalog/Helper/CategoryTest.php
+++ b/tests/unit/Mage/Catalog/Helper/CategoryTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Catalog_Helper_Category as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CategoryTest extends TestCase
+class CategoryTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('catalog/category');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('catalog/category');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testCanUseCanonicalTag(): void
{
- $this->assertIsBool($this->subject->canUseCanonicalTag());
+ static::assertIsBool(self::$subject->canUseCanonicalTag());
}
}
diff --git a/tests/unit/Mage/Catalog/Helper/DataTest.php b/tests/unit/Mage/Catalog/Helper/DataTest.php
index 2cd5e2fdba7..6cf9eba9395 100644
--- a/tests/unit/Mage/Catalog/Helper/DataTest.php
+++ b/tests/unit/Mage/Catalog/Helper/DataTest.php
@@ -17,92 +17,70 @@
namespace OpenMage\Tests\Unit\Mage\Catalog\Helper;
-use Generator;
use Mage;
use Mage_Catalog_Helper_Data as Subject;
use Mage_Catalog_Model_Template_Filter;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Helper\DataTrait;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ use DataTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('catalog');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('catalog');
}
/**
* @dataProvider provideSplitSku
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
- public function testSplitSku($expectedResult, string $sku, int $length = 30): void
- {
- $this->assertSame($expectedResult, $this->subject->splitSku($sku, $length));
- }
-
- public function provideSplitSku(): Generator
+ public function testSplitSku(array $expectedResult, string $sku, int $length = 30): void
{
- yield 'test #1' => [
- [
- '100',
- ],
- '100',
- ];
- yield 'test #2 w/ length' => [
- [
- '10',
- '0',
- ],
- '100',
- 2,
- ];
+ static::assertSame($expectedResult, self::$subject->splitSku($sku, $length));
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testShouldSaveUrlRewritesHistory(): void
{
- $this->assertIsBool($this->subject->shouldSaveUrlRewritesHistory());
+ static::assertIsBool(self::$subject->shouldSaveUrlRewritesHistory());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testIsUsingStaticUrlsAllowed(): void
{
- $this->assertIsBool($this->subject->isUsingStaticUrlsAllowed());
+ static::assertIsBool(self::$subject->isUsingStaticUrlsAllowed());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testIsUrlDirectivesParsingAllowed(): void
{
- $this->assertIsBool($this->subject->isUrlDirectivesParsingAllowed());
+ static::assertIsBool(self::$subject->isUrlDirectivesParsingAllowed());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetPageTemplateProcessor(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Template_Filter::class, $this->subject->getPageTemplateProcessor());
+ static::assertInstanceOf(Mage_Catalog_Model_Template_Filter::class, self::$subject->getPageTemplateProcessor());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetOldFieldMap(): void
{
- $this->assertSame([], $this->subject->getOldFieldMap());
+ static::assertSame([], self::$subject->getOldFieldMap());
}
}
diff --git a/tests/unit/Mage/Catalog/Helper/MapTest.php b/tests/unit/Mage/Catalog/Helper/MapTest.php
index c2ec84f5c3b..df4dcaa6740 100644
--- a/tests/unit/Mage/Catalog/Helper/MapTest.php
+++ b/tests/unit/Mage/Catalog/Helper/MapTest.php
@@ -19,46 +19,43 @@
use Mage;
use Mage_Catalog_Helper_Map as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class MapTest extends TestCase
+class MapTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('catalog/map');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('catalog/map');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetCategoryUrl(): void
{
- $this->assertStringEndsWith('/catalog/seo_sitemap/category/', $this->subject->getCategoryUrl());
+ static::assertStringEndsWith('/catalog/seo_sitemap/category/', self::$subject->getCategoryUrl());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetProductUrl(): void
{
- $this->assertStringEndsWith('/catalog/seo_sitemap/product/', $this->subject->getProductUrl());
+ static::assertStringEndsWith('/catalog/seo_sitemap/product/', self::$subject->getProductUrl());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetIsUseCategoryTreeMode(): void
{
- $this->assertIsBool($this->subject->getIsUseCategoryTreeMode());
+ static::assertIsBool(self::$subject->getIsUseCategoryTreeMode());
}
}
diff --git a/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php b/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php
index 6ea1ee24d9b..9a8a05fc762 100644
--- a/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php
+++ b/tests/unit/Mage/Catalog/Helper/Product/UrlTest.php
@@ -17,82 +17,60 @@
namespace OpenMage\Tests\Unit\Mage\Catalog\Helper\Product;
-use Generator;
use Mage;
use Mage_Catalog_Helper_Product_Url as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Helper\Product\UrlTrait;
-class UrlTest extends TestCase
+class UrlTest extends OpenMageTest
{
- public Subject $subject;
+ use UrlTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('catalog/product_url');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('catalog/product_url');
}
/**
* @covers Mage_Catalog_Helper_Product_Url::getConvertTable()
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetConvertTable(): void
{
- $result = $this->subject->getConvertTable();
- $this->assertCount(317, $result);
+ $result = self::$subject->getConvertTable();
+ static::assertCount(317, $result);
}
/**
* @covers Mage_Catalog_Helper_Product_Url::getConvertTableCustom()
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetConvertTableCustom(): void
{
- $result = $this->subject->getConvertTableCustom();
- $this->assertEmpty($result);
+ $result = self::$subject->getConvertTableCustom();
+ static::assertEmpty($result);
}
/**
* @covers Mage_Catalog_Helper_Product_Url::getConvertTableShort()
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetConvertTableShort(): void
{
- $result = $this->subject->getConvertTableShort();
- $this->assertCount(4, $result);
+ $result = self::$subject->getConvertTableShort();
+ static::assertCount(4, $result);
}
/**
* @covers Mage_Catalog_Helper_Product_Url::format()
* @dataProvider provideFormat
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testFormat(string $expectedResult, ?string $string): void
{
- $this->assertSame($expectedResult, $this->subject->format($string));
- }
-
- public function provideFormat(): Generator
- {
- yield 'null' => [
- '',
- null,
- ];
- yield 'string' => [
- 'string',
- 'string',
- ];
- yield 'umlauts' => [
- 'string with aou',
- 'string with ÄÖÜ',
- ];
- yield 'at' => [
- 'at',
- '@',
- ];
+ static::assertSame($expectedResult, self::$subject->format($string));
}
}
diff --git a/tests/unit/Mage/Catalog/Helper/ProductTest.php b/tests/unit/Mage/Catalog/Helper/ProductTest.php
index 7910f8eba9a..7cc3a210885 100644
--- a/tests/unit/Mage/Catalog/Helper/ProductTest.php
+++ b/tests/unit/Mage/Catalog/Helper/ProductTest.php
@@ -17,93 +17,55 @@
namespace OpenMage\Tests\Unit\Mage\Catalog\Helper;
-use Generator;
use Mage;
use Mage_Catalog_Helper_Product as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Helper\ProductTrait;
-class ProductTest extends TestCase
+class ProductTest extends OpenMageTest
{
- public Subject $subject;
+ use ProductTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('catalog/product');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('catalog/product');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testCanUseCanonicalTag(): void
{
- $this->assertIsBool($this->subject->canUseCanonicalTag());
+ static::assertIsBool(self::$subject->canUseCanonicalTag());
}
/**
* @dataProvider provideGetAttributeInputTypes
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
public function testGetAttributeInputTypes(int $expectedResult, ?string $inputType = null): void
{
- $this->assertCount($expectedResult, $this->subject->getAttributeInputTypes($inputType));
- }
-
- public function provideGetAttributeInputTypes(): Generator
- {
- yield 'null' => [
- 2,
- null,
- ];
- yield 'invalid' => [
- 0,
- 'invalid',
- ];
- yield 'multiselect' => [
- 1,
- 'multiselect',
- ];
- yield 'boolean' => [
- 1,
- 'boolean',
- ];
+ static::assertCount($expectedResult, self::$subject->getAttributeInputTypes($inputType));
}
/**
* @dataProvider provideGetAttributeBackendModelByInputType
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
- public function testGetAttributeBackendModelByInputType($expectedResult, string $inputType): void
- {
- $this->assertSame($expectedResult, $this->subject->getAttributeBackendModelByInputType($inputType));
- }
-
- public function provideGetAttributeBackendModelByInputType(): Generator
+ public function testGetAttributeBackendModelByInputType(string $expectedResult, string $inputType): void
{
- yield 'multiselect' => [
- 'eav/entity_attribute_backend_array',
- 'multiselect',
- ];
+ static::assertSame($expectedResult, self::$subject->getAttributeBackendModelByInputType($inputType));
}
/**
* @dataProvider provideGetAttributeSourceModelByInputType
- * @group Mage_Catalog
- * @group Mage_Catalog_Helper
+ * @group Helper
*/
- public function testGetAttributeSourceModelByInputType($expectedResult, string $inputType): void
- {
- $this->assertSame($expectedResult, $this->subject->getAttributeSourceModelByInputType($inputType));
- }
-
- public function provideGetAttributeSourceModelByInputType(): Generator
+ public function testGetAttributeSourceModelByInputType(string $expectedResult, string $inputType): void
{
- yield 'boolean' => [
- 'eav/entity_attribute_source_boolean',
- 'boolean',
- ];
+ static::assertSame($expectedResult, self::$subject->getAttributeSourceModelByInputType($inputType));
}
}
diff --git a/tests/unit/Mage/Catalog/Model/CategoryTest.php b/tests/unit/Mage/Catalog/Model/CategoryTest.php
index 28ecb29f624..80612fc2068 100644
--- a/tests/unit/Mage/Catalog/Model/CategoryTest.php
+++ b/tests/unit/Mage/Catalog/Model/CategoryTest.php
@@ -23,105 +23,96 @@
use Mage_Catalog_Model_Resource_Product_Collection;
use Mage_Catalog_Model_Url;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CategoryTest extends TestCase
+class CategoryTest extends OpenMageTest
{
use CatalogTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('catalog/category');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('catalog/category');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetDefaultAttributeSetId(): void
{
- $this->assertIsInt($this->subject->getDefaultAttributeSetId());
+ static::assertIsInt(self::$subject->getDefaultAttributeSetId());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetProductCollection(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Resource_Product_Collection::class, $this->subject->getProductCollection());
+ static::assertInstanceOf(Mage_Catalog_Model_Resource_Product_Collection::class, self::$subject->getProductCollection());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetAvailableSortByOptions(): void
{
- $this->assertIsArray($this->subject->getAvailableSortByOptions());
+ static::assertIsArray(self::$subject->getAvailableSortByOptions());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetDefaultSortBy(): void
{
- $this->assertSame('position', $this->subject->getDefaultSortBy());
+ static::assertSame('position', self::$subject->getDefaultSortBy());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testValidate(): void
{
- $this->assertIsArray($this->subject->validate());
+ static::assertIsArray(self::$subject->validate());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testAfterCommitCallback(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->afterCommitCallback());
+ static::assertInstanceOf(Subject::class, self::$subject->afterCommitCallback());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetUrlModel(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Url::class, $this->subject->getUrlModel());
- $this->assertInstanceOf(Mage_Catalog_Model_Category_Url::class, $this->subject->getUrlModel());
+ static::assertInstanceOf(Mage_Catalog_Model_Url::class, self::$subject->getUrlModel());
+ static::assertInstanceOf(Mage_Catalog_Model_Category_Url::class, self::$subject->getUrlModel());
}
/**
* @dataProvider provideFormatUrlKey
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
* @runInSeparateProcess
*/
// public function testGetCategoryIdUrl($expectedResult, ?string $locale): void
// {
- // $this->subject->setName(self::TEST_STRING);
- // $this->subject->setLocale($locale);
- // $this->assertSame($expectedResult, $this->subject->getCategoryIdUrl());
+ // self::$subject->setName(self::TEST_STRING);
+ // self::$subject->setLocale($locale);
+ // $this->assertSame($expectedResult, self::$subject->getCategoryIdUrl());
// }
/**
* @dataProvider provideFormatUrlKey
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
- public function testFormatUrlKey($expectedResult, string $locale): void
+ public function testFormatUrlKey(string $expectedResult, string $locale): void
{
- $this->subject->setLocale($locale);
- $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString()));
+ self::$subject->setLocale($locale);
+ static::assertSame($expectedResult, self::$subject->formatUrlKey($this->getTestString()));
}
}
diff --git a/tests/unit/Mage/Catalog/Model/Product/Option/Type/TextTest.php b/tests/unit/Mage/Catalog/Model/Product/Option/Type/TextTest.php
index 313cf47fafe..a68f9d3b53f 100644
--- a/tests/unit/Mage/Catalog/Model/Product/Option/Type/TextTest.php
+++ b/tests/unit/Mage/Catalog/Model/Product/Option/Type/TextTest.php
@@ -21,40 +21,38 @@
use Mage;
use Mage_Catalog_Model_Product_Option;
use Mage_Catalog_Model_Product_Option_Type_Text as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class TextTest extends TestCase
+class TextTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('catalog/product_option_type_text');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('catalog/product_option_type_text');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testValidateUserValue(): void
{
- $this->subject->setOption(new Mage_Catalog_Model_Product_Option());
- $this->assertInstanceOf(Subject::class, $this->subject->validateUserValue([]));
+ self::$subject->setOption(new Mage_Catalog_Model_Product_Option());
+ static::assertInstanceOf(Subject::class, self::$subject->validateUserValue([]));
}
/**
* @dataProvider providePrepareForCart
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
- public function testPrepareForCart($expectedResult, bool $setIsValid = true, $setUserValue = null): void
+ public function testPrepareForCart(?string $expectedResult, bool $setIsValid = true, ?string $setUserValue = null): void
{
- $this->subject->setIsValid($setIsValid)->setUserValue($setUserValue);
- $this->assertSame($expectedResult, $this->subject->prepareForCart());
+ self::$subject->setIsValid($setIsValid)->setUserValue($setUserValue);
+ static::assertSame($expectedResult, self::$subject->prepareForCart());
}
public function providePrepareForCart(): Generator
@@ -71,11 +69,10 @@ public function providePrepareForCart(): Generator
/**
* @covers Mage_Catalog_Model_Product_Option_Type_Text::getFormattedOptionValue()
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetDefaultAttributeSetId(): void
{
- $this->assertIsString($this->subject->getFormattedOptionValue(''));
+ static::assertIsString(self::$subject->getFormattedOptionValue(''));
}
}
diff --git a/tests/unit/Mage/Catalog/Model/ProductTest.php b/tests/unit/Mage/Catalog/Model/ProductTest.php
index e0f088acc6d..9f416fc1d43 100644
--- a/tests/unit/Mage/Catalog/Model/ProductTest.php
+++ b/tests/unit/Mage/Catalog/Model/ProductTest.php
@@ -26,149 +26,135 @@
use Mage_Catalog_Model_Url;
use OpenMage\Tests\Unit\Traits\DataProvider\Base\BoolTrait;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ProductTest extends TestCase
+class ProductTest extends OpenMageTest
{
use BoolTrait;
use CatalogTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('catalog/product');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('catalog/product');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetStoreId(): void
{
- $this->assertIsInt($this->subject->getStoreId());
+ static::assertIsInt(self::$subject->getStoreId());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetResourceCollection(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Resource_Product_Collection::class, $this->subject->getResourceCollection());
+ static::assertInstanceOf(Mage_Catalog_Model_Resource_Product_Collection::class, self::$subject->getResourceCollection());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetUrlModel(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Url::class, $this->subject->getUrlModel());
- $this->assertInstanceOf(Mage_Catalog_Model_Product_Url::class, $this->subject->getUrlModel());
+ static::assertInstanceOf(Mage_Catalog_Model_Url::class, self::$subject->getUrlModel());
+ static::assertInstanceOf(Mage_Catalog_Model_Product_Url::class, self::$subject->getUrlModel());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testValidate(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->validate());
+ static::assertInstanceOf(Subject::class, self::$subject->validate());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
// public function testGetName(): void
// {
- // $this->assertNull($this->subject->getName());
- // $this->assertIsString($this->subject->getName());
+ // $this->assertNull(self::$subject->getName());
+ // $this->assertIsString(self::$subject->getName());
// }
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
// public function testGetPrice(): void
// {
- // $this->assertIsFloat($this->subject->getPrice());
+ // $this->assertIsFloat(self::$subject->getPrice());
// }
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testSetPriceCalculation(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setPriceCalculation());
+ static::assertInstanceOf(Subject::class, self::$subject->setPriceCalculation());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
// public function testGetTypeId(): void
// {
- // $this->assertIsString($this->subject->getTypeId());
+ // $this->assertIsString(self::$subject->getTypeId());
// }
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetStatus(): void
{
- $this->assertSame(1, $this->subject->getStatus());
+ static::assertSame(1, self::$subject->getStatus());
}
/**
* @dataProvider provideBool
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetTypeInstance(bool $singleton): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Product_Type_Abstract::class, $this->subject->getTypeInstance($singleton));
+ static::assertInstanceOf(Mage_Catalog_Model_Product_Type_Abstract::class, self::$subject->getTypeInstance($singleton));
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetLinkInstance(): void
{
- $this->assertInstanceOf(Mage_Catalog_Model_Product_Link::class, $this->subject->getLinkInstance());
+ static::assertInstanceOf(Mage_Catalog_Model_Product_Link::class, self::$subject->getLinkInstance());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetDefaultAttributeSetId(): void
{
- $this->assertIsInt($this->subject->getDefaultAttributeSetId());
+ static::assertIsInt(self::$subject->getDefaultAttributeSetId());
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testAfterCommitCallback(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->afterCommitCallback());
+ static::assertInstanceOf(Subject::class, self::$subject->afterCommitCallback());
}
/**
* @dataProvider provideFormatUrlKey
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
- public function testFormatUrlKey($expectedResult, string $locale): void
+ public function testFormatUrlKey(string $expectedResult, string $locale): void
{
- $this->subject->setLocale($locale);
- $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString()));
+ self::$subject->setLocale($locale);
+ static::assertSame($expectedResult, self::$subject->formatUrlKey($this->getTestString()));
}
}
diff --git a/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php b/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php
index 2d57ed1762d..5e9e0402310 100644
--- a/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php
+++ b/tests/unit/Mage/Catalog/Model/Resource/Eav/AttributeTest.php
@@ -1,16 +1,9 @@
subject = Mage::getModel('catalog/resource_eav_attribute');
+ self::$subject = Mage::getModel('catalog/resource_eav_attribute');
}
/**
* @dataProvider provideGetStoreId
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
- * @group Mage_Catalog_Model_Resource
+ * @group Model
*/
- public function testGetStoreId($expectedResult, $withStoreId): void
+ public function testGetStoreId(?int $expectedResult, int|string|null $withStoreId): void
{
if ($withStoreId) {
- $this->subject->setStoreId($withStoreId);
+ self::$subject->setStoreId($withStoreId);
}
- $this->assertSame($expectedResult, $this->subject->getStoreId());
+ static::assertSame($expectedResult, self::$subject->getStoreId());
}
}
diff --git a/tests/unit/Mage/Catalog/Model/UrlTest.php b/tests/unit/Mage/Catalog/Model/UrlTest.php
index 305b6a2dabc..3ebf93234c2 100644
--- a/tests/unit/Mage/Catalog/Model/UrlTest.php
+++ b/tests/unit/Mage/Catalog/Model/UrlTest.php
@@ -17,53 +17,50 @@
namespace OpenMage\Tests\Unit\Mage\Catalog\Model;
-use Generator;
use Mage;
use Mage_Catalog_Model_Url as Subject;
use Mage_Core_Exception;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Base\IntOrNullTrait;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\CatalogTrait;
-use PHPUnit\Framework\TestCase;
-use Symfony\Component\String\Slugger\AsciiSlugger;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Model\UrlTrait;
use Varien_Object;
-class UrlTest extends TestCase
+class UrlTest extends OpenMageTest
{
use CatalogTrait;
use IntOrNullTrait;
+ use UrlTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('catalog/url');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('catalog/url');
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGetStoreRootCategory(): void
{
- $this->assertInstanceOf(Varien_Object::class, $this->subject->getStoreRootCategory(1));
+ static::assertInstanceOf(Varien_Object::class, self::$subject->getStoreRootCategory(1));
}
/**
* @dataProvider provideIntOrNull
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testRefreshRewrites(?int $storeId): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->refreshRewrites($storeId));
+ static::assertInstanceOf(Subject::class, self::$subject->refreshRewrites($storeId));
}
/**
* @dataProvider provideGeneratePathData
*
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
public function testGeneratePath(
string $expectedResult,
@@ -73,120 +70,47 @@ public function testGeneratePath(
?string $parentPath = null
): void {
try {
- $this->assertSame($expectedResult, $this->subject->generatePath($type, $product, $category, $parentPath));
+ static::assertSame($expectedResult, self::$subject->generatePath($type, $product, $category, $parentPath));
} catch (Mage_Core_Exception $e) {
- $this->assertSame($expectedResult, $e->getMessage());
+ static::assertSame($expectedResult, $e->getMessage());
}
}
- public function provideGeneratePathData(): Generator
- {
- $category = new Varien_Object([
- 'id' => '999',
- 'store_id' => '1',
- 'url_key' => '',
- 'name' => 'category',
-
- ]);
- $product = new Varien_Object([
- 'id' => '999',
- 'name' => 'product',
- ]);
-
- yield 'test exception' => [
- 'Please specify either a category or a product, or both.',
- 'request',
- null,
- null,
- ];
- yield 'request' => [
- 'product.html',
- 'request',
- $product,
- $category,
- ];
- // yield 'request w/o product' => [
- // '-.html',
- // 'request',
- // null,
- // $category,
- // ];
- yield 'target category' => [
- 'catalog/category/view/id/999',
- 'target',
- null,
- $category,
- ];
- yield 'target product' => [
- 'catalog/product/view/id/999',
- 'target',
- $product,
- $category,
- ];
- }
/**
* @dataProvider provideFormatUrlKey
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
- public function testFormatUrlKey($expectedResult, string $locale): void
+ public function testFormatUrlKey(string $expectedResult, string $locale): void
{
- $this->subject->setLocale($locale);
- $this->assertSame($expectedResult, $this->subject->formatUrlKey($this->getTestString()));
+ self::$subject->setLocale($locale);
+ static::assertSame($expectedResult, self::$subject->formatUrlKey($this->getTestString()));
}
/**
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
* @doesNotPerformAssertions
*/
// public function testGetSlugger(): void
// {
- // $this->subject->getSlugger();
+ // self::$subject->getSlugger();
// }
/**
* @dataProvider provideGetSluggerConfig
- * @group Mage_Catalog
- * @group Mage_Catalog_Model
+ * @group Model
*/
- public function testGetSluggerConfig($expectedResult, string $locale): void
+ public function testGetSluggerConfig(array $expectedResult, string $locale): void
{
- $result = $this->subject->getSluggerConfig($locale);
+ $result = self::$subject->getSluggerConfig($locale);
- $this->assertArrayHasKey($locale, $result);
+ static::assertArrayHasKey($locale, $result);
- $this->assertArrayHasKey('%', $result[$locale]);
- $this->assertArrayHasKey('&', $result[$locale]);
+ static::assertArrayHasKey('%', $result[$locale]);
+ static::assertArrayHasKey('&', $result[$locale]);
- $this->assertSame($expectedResult[$locale]['%'], $result[$locale]['%']);
- $this->assertSame($expectedResult[$locale]['&'], $result[$locale]['&']);
+ static::assertSame($expectedResult[$locale]['%'], $result[$locale]['%']);
+ static::assertSame($expectedResult[$locale]['&'], $result[$locale]['&']);
- $this->assertSame('at', $result[$locale]['@']);
- }
-
- public function provideGetSluggerConfig(): Generator
- {
- yield 'de_DE' => [
- ['de_DE' => [
- '%' => 'prozent',
- '&' => 'und',
- ]],
- 'de_DE',
- ];
- yield 'en_US' => [
- ['en_US' => [
- '%' => 'percent',
- '&' => 'and',
- ]],
- 'en_US',
- ];
- yield 'fr_FR' => [
- ['fr_FR' => [
- '%' => 'pour cent',
- '&' => 'et',
- ]],
- 'fr_FR',
- ];
+ static::assertSame('at', $result[$locale]['@']);
}
}
diff --git a/tests/unit/Mage/Cms/Block/BlockTest.php b/tests/unit/Mage/Cms/Block/BlockTest.php
index 5fac0f46736..6199d345e0e 100644
--- a/tests/unit/Mage/Cms/Block/BlockTest.php
+++ b/tests/unit/Mage/Cms/Block/BlockTest.php
@@ -18,25 +18,27 @@
namespace OpenMage\Tests\Unit\Mage\Cms\Block;
use Mage_Cms_Block_Block as Subject;
+use Mage_Core_Model_Store_Exception;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait;
-use PHPUnit\Framework\TestCase;
-class BlockTest extends TestCase
+class BlockTest extends OpenMageTest
{
use NumericStringTrait;
/**
* @dataProvider provideNumericString
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @group Block
+ * @throws Mage_Core_Model_Store_Exception
*/
public function testGetCacheKeyInfo(string $blockId): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getBlockId'])
- ->getMock();
+ $methods = [
+ 'getBlockId' => $blockId,
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getBlockId')->willReturn($blockId);
- $this->assertIsArray($mock->getCacheKeyInfo());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertIsArray($mock->getCacheKeyInfo());
}
}
diff --git a/tests/unit/Mage/Cms/Block/PageTest.php b/tests/unit/Mage/Cms/Block/PageTest.php
index aa637f47c2d..ec54f4351d4 100644
--- a/tests/unit/Mage/Cms/Block/PageTest.php
+++ b/tests/unit/Mage/Cms/Block/PageTest.php
@@ -19,25 +19,27 @@
use Mage_Cms_Block_Page as Subject;
use Mage_Cms_Model_Page;
+use Mage_Core_Model_Store_Exception;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait;
-use PHPUnit\Framework\TestCase;
-class PageTest extends TestCase
+class PageTest extends OpenMageTest
{
use NumericStringTrait;
/**
* @dataProvider provideNumericString
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @group Block
+ * @throws Mage_Core_Model_Store_Exception
*/
public function testGetPage(string $pageId): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getPageId'])
- ->getMock();
+ $methods = [
+ 'getPageId' => $pageId,
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getPageId')->willReturn($pageId);
- $this->assertInstanceOf(Mage_Cms_Model_Page::class, $mock->getPage());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertInstanceOf(Mage_Cms_Model_Page::class, $mock->getPage());
}
}
diff --git a/tests/unit/Mage/Cms/Block/Widget/BlockTest.php b/tests/unit/Mage/Cms/Block/Widget/BlockTest.php
index 3893735d9d5..703577e4be1 100644
--- a/tests/unit/Mage/Cms/Block/Widget/BlockTest.php
+++ b/tests/unit/Mage/Cms/Block/Widget/BlockTest.php
@@ -17,44 +17,42 @@
namespace OpenMage\Tests\Unit\Mage\Cms\Block\Widget;
-use Mage;
use Mage_Cms_Block_Widget_Block as Subject;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Base\NumericStringTrait;
-use PHPUnit\Framework\TestCase;
-class BlockTest extends TestCase
+class BlockTest extends OpenMageTest
{
use NumericStringTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
* @dataProvider provideNumericString
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @group Block
*/
public function testGetCacheKeyInfo(string $blockId): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getBlockId'])
- ->getMock();
+ $methods = [
+ 'getBlockId' => $blockId,
+ ];
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getBlockId')->willReturn($blockId);
- $this->assertIsArray($mock->getCacheKeyInfo());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertIsArray($mock->getCacheKeyInfo());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @group Block
*/
public function testIsRequestFromAdminArea(): void
{
- $this->assertIsBool($this->subject->isRequestFromAdminArea());
+ static::assertIsBool(self::$subject->isRequestFromAdminArea());
}
}
diff --git a/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php b/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php
index fbd6c7f841d..7e1833d5aad 100644
--- a/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php
+++ b/tests/unit/Mage/Cms/Block/Widget/Page/LinkTest.php
@@ -17,44 +17,60 @@
namespace OpenMage\Tests\Unit\Mage\Cms\Block\Widget\Page;
-use Mage;
use Mage_Cms_Block_Widget_Page_Link as Subject;
-use PHPUnit\Framework\TestCase;
+use Mage_Core_Model_Store_Exception;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms\Block\Widget\Page\LinkTrait;
-class LinkTest extends TestCase
+class LinkTest extends OpenMageTest
{
- public Subject $subject;
+ use LinkTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ protected function setUp(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUp();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @dataProvider provideGetHrefData
+ * @group Block
+ * @group runInSeparateProcess
+ * @runInSeparateProcess
*/
- public function testGetHref(): void
+ public function testGetHref(string $expectedResult, array $data): void
{
- $this->assertIsString($this->subject->getHref());
+ self::$subject->setData($data);
+
+ $result = self::$subject->getHref();
+ static::assertSame($expectedResult, $result);
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @dataProvider provideGetTitleData
+ * @group Block
+ * @throws Mage_Core_Model_Store_Exception
*/
- public function testGetTitle(): void
+ public function testGetTitle(string $expectedResult, array $data): void
{
- $this->assertIsString($this->subject->getTitle());
+ self::$subject->setData($data);
+
+ $result = self::$subject->getTitle();
+ static::assertSame($expectedResult, $result);
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Block
+ * @dataProvider provideGetAnchorTextData
+ * @group Block
+ * @throws Mage_Core_Model_Store_Exception
*/
- // public function testGetAnchorText(): void
- // {
- // $this->assertIsString($this->subject->getAnchorText());
- // }
+ public function testGetAnchorText(bool|string|null $expectedResult, array $data): void
+ {
+ self::$subject->setData($data);
+
+ $result = self::$subject->getAnchorText();
+ static::assertSame($expectedResult, $result);
+ }
}
diff --git a/tests/unit/Mage/Cms/Helper/DataTest.php b/tests/unit/Mage/Cms/Helper/DataTest.php
index ae858e4e951..cd244fe2c8e 100644
--- a/tests/unit/Mage/Cms/Helper/DataTest.php
+++ b/tests/unit/Mage/Cms/Helper/DataTest.php
@@ -19,54 +19,50 @@
use Mage;
use Mage_Cms_Helper_Data as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Filter_Template;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
public const TEST_STRING = '1234567890';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('cms/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('cms/data');
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetAllowedStreamWrappers(): void
{
- $this->assertIsArray($this->subject->getAllowedStreamWrappers());
+ static::assertIsArray(self::$subject->getAllowedStreamWrappers());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetBlockTemplateProcessor(): void
{
- $this->assertInstanceOf(Varien_Filter_Template::class, $this->subject->getBlockTemplateProcessor());
+ static::assertInstanceOf(Varien_Filter_Template::class, self::$subject->getBlockTemplateProcessor());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetPageTemplateProcessor(): void
{
- $this->assertInstanceOf(Varien_Filter_Template::class, $this->subject->getPageTemplateProcessor());
+ static::assertInstanceOf(Varien_Filter_Template::class, self::$subject->getPageTemplateProcessor());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testIsSwfDisabled(): void
{
- $this->assertTrue($this->subject->isSwfDisabled());
+ static::assertTrue(self::$subject->isSwfDisabled());
}
}
diff --git a/tests/unit/Mage/Cms/Helper/PageTest.php b/tests/unit/Mage/Cms/Helper/PageTest.php
index 472fb1f6c24..383f7008b50 100644
--- a/tests/unit/Mage/Cms/Helper/PageTest.php
+++ b/tests/unit/Mage/Cms/Helper/PageTest.php
@@ -17,30 +17,20 @@
namespace OpenMage\Tests\Unit\Mage\Cms\Helper;
-use Mage;
use Mage_Cms_Helper_Page as Subject;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms\CmsTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class PageTest extends TestCase
+class PageTest extends OpenMageTest
{
use CmsTrait;
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = Mage::helper('cms/page');
- }
-
/**
* @dataProvider provideGetUsedInStoreConfigPaths
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetUsedInStoreConfigPaths(array $expectedResult, ?array $path): void
{
- $this->assertSame($expectedResult, Subject::getUsedInStoreConfigPaths($path));
+ static::assertSame($expectedResult, Subject::getUsedInStoreConfigPaths($path));
}
}
diff --git a/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php b/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php
index c52b75ed32c..f278b0af0ea 100644
--- a/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php
+++ b/tests/unit/Mage/Cms/Helper/Wysiwyg/ImagesTest.php
@@ -21,72 +21,66 @@
use Mage_Cms_Helper_Wysiwyg_Images as Subject;
use Mage_Cms_Model_Wysiwyg_Images_Storage;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms\CmsTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ImagesTest extends TestCase
+class ImagesTest extends OpenMageTest
{
use CmsTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('cms/wysiwyg_images');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('cms/wysiwyg_images');
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetCurrentPath(): void
{
- $this->assertIsString($this->subject->getCurrentPath());
+ static::assertIsString(self::$subject->getCurrentPath());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetCurrentUrl(): void
{
- $this->assertIsString($this->subject->getCurrentUrl());
+ static::assertIsString(self::$subject->getCurrentUrl());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetStorage(): void
{
- $this->assertInstanceOf(Mage_Cms_Model_Wysiwyg_Images_Storage::class, $this->subject->getStorage());
+ static::assertInstanceOf(Mage_Cms_Model_Wysiwyg_Images_Storage::class, self::$subject->getStorage());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testIdEncode(): void
{
- $this->assertIsString($this->subject->idEncode($this->getTestString()));
+ static::assertIsString(self::$subject->idEncode($this->getTestString()));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testIdDecode(): void
{
- $this->assertIsString($this->subject->idDecode($this->getTestString()));
+ static::assertIsString(self::$subject->idDecode($this->getTestString()));
}
/**
* @dataProvider provideGetShortFilename
- * @group Mage_Cms
- * @group Mage_Cms_Helper
+ * @group Helper
*/
public function testGetShortFilename(string $expectedResult, string $filename, int $maxLength): void
{
- $this->assertSame($expectedResult, $this->subject->getShortFilename($filename, $maxLength));
+ static::assertSame($expectedResult, self::$subject->getShortFilename($filename, $maxLength));
}
}
diff --git a/tests/unit/Mage/Cms/Model/PageTest.php b/tests/unit/Mage/Cms/Model/PageTest.php
index edfab105585..a830768bcd8 100644
--- a/tests/unit/Mage/Cms/Model/PageTest.php
+++ b/tests/unit/Mage/Cms/Model/PageTest.php
@@ -19,98 +19,88 @@
use Mage;
use Mage_Cms_Model_Page as Subject;
-use Mage_Core_Model_Resource_Db_Collection_Abstract;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class PageTest extends TestCase
+class PageTest extends OpenMageTest
{
public const SKIP_WITH_LOCAL_DATA = 'Constant DATA_MAY_CHANGED is defined.';
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = Mage::getModel('cms/page');
+ self::$subject = Mage::getModel('cms/page');
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testLoad(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->load(null));
- $this->assertInstanceOf(Subject::class, $this->subject->load(2));
+ static::assertInstanceOf(Subject::class, self::$subject->load(null));
+ static::assertInstanceOf(Subject::class, self::$subject->load(2));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testCheckIdentifier(): void
{
- $this->assertIsString($this->subject->checkIdentifier('home', 1));
+ static::assertIsString(self::$subject->checkIdentifier('home', 1));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetCmsPageTitleByIdentifier(): void
{
if (defined('DATA_MAY_CHANGED')) {
- $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
+ static::markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
}
- $this->assertSame('Home page', $this->subject->getCmsPageTitleByIdentifier('home'));
+ static::assertSame('Home page', self::$subject->getCmsPageTitleByIdentifier('home'));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetCmsPageTitleById(): void
{
if (defined('DATA_MAY_CHANGED')) {
- $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
+ static::markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
}
- $this->assertSame('Home page', $this->subject->getCmsPageTitleById(2));
+ static::assertSame('Home page', self::$subject->getCmsPageTitleById(2));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetCmsPageIdentifierById(): void
{
- $this->assertSame('home', $this->subject->getCmsPageIdentifierById(2));
+ static::assertSame('home', self::$subject->getCmsPageIdentifierById(2));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetAvailableStatuses(): void
{
- $this->assertIsArray($this->subject->getAvailableStatuses());
+ static::assertIsArray(self::$subject->getAvailableStatuses());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
* @doesNotPerformAssertions
*/
public function testGetUsedInStoreConfigCollection(): void
{
- $this->subject->getUsedInStoreConfigCollection();
+ self::$subject->getUsedInStoreConfigCollection();
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testIsUsedInStoreConfig(): void
{
- $this->assertFalse($this->subject->isUsedInStoreConfig());
+ static::assertFalse(self::$subject->isUsedInStoreConfig());
}
}
diff --git a/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php b/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php
index a9dd5c2f8ae..06d15a41695 100644
--- a/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php
+++ b/tests/unit/Mage/Cms/Model/Wysiwyg/ConfigTest.php
@@ -19,65 +19,60 @@
use Mage;
use Mage_Cms_Model_Wysiwyg_Config as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Object;
-class ConfigTest extends TestCase
+class ConfigTest extends OpenMageTest
{
public const TEST_STRING = '0123456789';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('cms/wysiwyg_config');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('cms/wysiwyg_config');
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetConfig(): void
{
- $this->assertInstanceOf(Varien_Object::class, $this->subject->getConfig());
+ static::assertInstanceOf(Varien_Object::class, self::$subject->getConfig());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetSkinImagePlaceholderUrl(): void
{
- $this->assertIsString($this->subject->getSkinImagePlaceholderUrl());
+ static::assertIsString(self::$subject->getSkinImagePlaceholderUrl());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetSkinImagePlaceholderPath(): void
{
- $this->assertIsString($this->subject->getSkinImagePlaceholderPath());
+ static::assertIsString(self::$subject->getSkinImagePlaceholderPath());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testIsEnabled(): void
{
- $this->assertIsBool($this->subject->isEnabled());
+ static::assertIsBool(self::$subject->isEnabled());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testIsHidden(): void
{
- $this->assertIsBool($this->subject->isHidden());
+ static::assertIsBool(self::$subject->isHidden());
}
}
diff --git a/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php b/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php
index d665a4404ed..9843debdf15 100644
--- a/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php
+++ b/tests/unit/Mage/Cms/Model/Wysiwyg/Images/StorageTest.php
@@ -21,73 +21,67 @@
use Mage_Adminhtml_Model_Session;
use Mage_Cms_Helper_Wysiwyg_Images;
use Mage_Cms_Model_Wysiwyg_Images_Storage as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class StorageTest extends TestCase
+class StorageTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('cms/wysiwyg_images_storage');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('cms/wysiwyg_images_storage');
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetThumbsPath(): void
{
- $this->assertIsString($this->subject->getThumbsPath());
+ static::assertIsString(self::$subject->getThumbsPath());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testResizeOnTheFly(): void
{
- $this->assertFalse($this->subject->resizeOnTheFly('not-existing.jpeg'));
+ static::assertFalse(self::$subject->resizeOnTheFly('not-existing.jpeg'));
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetHelper(): void
{
- $this->assertInstanceOf(Mage_Cms_Helper_Wysiwyg_Images::class, $this->subject->getHelper());
+ static::assertInstanceOf(Mage_Cms_Helper_Wysiwyg_Images::class, self::$subject->getHelper());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetSession(): void
{
- $this->assertInstanceOf(Mage_Adminhtml_Model_Session::class, $this->subject->getSession());
+ static::assertInstanceOf(Mage_Adminhtml_Model_Session::class, self::$subject->getSession());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testGetThumbnailRoot(): void
{
- $this->assertIsString($this->subject->getThumbnailRoot());
+ static::assertIsString(self::$subject->getThumbnailRoot());
}
/**
- * @group Mage_Cms
- * @group Mage_Cms_Model
+ * @group Model
*/
public function testIsImage(): void
{
- $this->assertIsBool($this->subject->isImage('test.jpeg'));
+ static::assertIsBool(self::$subject->isImage('test.jpeg'));
}
}
diff --git a/tests/unit/Mage/Contacts/Controllers/IndexControllerTest.php b/tests/unit/Mage/Contacts/Controllers/IndexControllerTest.php
new file mode 100644
index 00000000000..805204db9e5
--- /dev/null
+++ b/tests/unit/Mage/Contacts/Controllers/IndexControllerTest.php
@@ -0,0 +1,68 @@
+getMockBuilder(\Mage_Core_Controller_Request_Http::class)
+ ->disableOriginalConstructor()
+ ->onlyMethods(['getPost'])
+ ->getMock();
+ $requestMock->method('getPost')->willReturn($postData);
+
+ $subject = $this->getMockBuilder(Subject::class)
+ ->disableOriginalConstructor()
+ ->onlyMethods(['_validateFormKey', 'getRequest', '_redirect'])
+ ->getMock();
+ $subject->method('getRequest')->willReturn($requestMock);
+ $subject->method('_validateFormKey')->willReturn($isFormKeyValid);
+
+ $sessionMock = $this->getMockBuilder(Mage_Customer_Model_Session::class)
+ ->disableOriginalConstructor()
+ ->onlyMethods(['addError', 'addSuccess'])
+ ->getMock();
+
+ Mage::register('_singleton/customer/session', $sessionMock);
+
+ if ($expectedErrorMessage) {
+ $sessionMock->expects(static::once())
+ ->method('addError')
+ ->with($expectedErrorMessage);
+ } else {
+ $sessionMock->expects(static::once())
+ ->method('addSuccess')
+ ->with('Your inquiry was submitted and will be responded to as soon as possible. Thank you for contacting us.');
+ }
+
+ $subject->expects(static::once())->method('_redirect')->with('*/*/');
+ $subject->postAction();
+
+ Mage::unregister('_singleton/customer/session');
+ }
+}
diff --git a/tests/unit/Mage/Core/Block/Text/ListTest.php b/tests/unit/Mage/Core/Block/Text/ListTest.php
index 34bdefb707a..ff633feecbb 100644
--- a/tests/unit/Mage/Core/Block/Text/ListTest.php
+++ b/tests/unit/Mage/Core/Block/Text/ListTest.php
@@ -18,18 +18,12 @@
namespace OpenMage\Tests\Unit\Mage\Core\Block\Text;
use Mage;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ListTest extends TestCase
+class ListTest extends OpenMageTest
{
- public function setUp(): void
- {
- Mage::app();
- }
-
/**
- * @group Mage_Core
- * @group Mage_Core_Block
+ * @group Block
*/
public function testDuplicateBlockName(): void
{
@@ -43,12 +37,11 @@ public function testDuplicateBlockName(): void
$childBlockA = $layout->createBlock('core/text', 'child_a')->setText('A2');
$parentBlock->append($childBlockA);
- $this->assertSame('A2', $parentBlock->toHtml());
+ static::assertSame('A2', $parentBlock->toHtml());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Block
+ * @group Block
*/
public function testDuplicateBlockNameOrdering(): void
{
@@ -70,12 +63,11 @@ public function testDuplicateBlockNameOrdering(): void
$childBlockB = $layout->createBlock('core/text', 'child_b')->setText('B');
$parentBlock->insert($childBlockB, 'child_c', false);
- $this->assertSame('ABC', $parentBlock->toHtml());
+ static::assertSame('ABC', $parentBlock->toHtml());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Block
+ * @group Block
*/
public function testUniqueBlockNameOrdering(): void
{
@@ -98,10 +90,10 @@ public function testUniqueBlockNameOrdering(): void
$parentBlock->unsetChild('child_a');
$parentBlock->unsetChild('child_b');
- $this->assertSame('CD', $parentBlock->toHtml());
+ static::assertSame('CD', $parentBlock->toHtml());
}
- public function testSortInstructionsAfterReplaceChild()
+ public function testSortInstructionsAfterReplaceChild(): void
{
$layout = Mage::getModel('core/layout');
@@ -117,6 +109,6 @@ public function testSortInstructionsAfterReplaceChild()
$layout->setBlock('target_block', $childBlockB);
$parentBlock->setChild('child', $childBlockB);
- $this->assertSame('B', $parentBlock->toHtml());
+ static::assertSame('B', $parentBlock->toHtml());
}
}
diff --git a/tests/unit/Mage/Core/Helper/ArrayTest.php b/tests/unit/Mage/Core/Helper/ArrayTest.php
new file mode 100644
index 00000000000..1e0e5184eb8
--- /dev/null
+++ b/tests/unit/Mage/Core/Helper/ArrayTest.php
@@ -0,0 +1,46 @@
+mergeRecursiveWithoutOverwriteNumKeys($baseArray, $mergeArray));
+ }
+}
diff --git a/tests/unit/Mage/Core/Helper/CookieTest.php b/tests/unit/Mage/Core/Helper/CookieTest.php
index 76612ec3c3a..5eb59199fa7 100644
--- a/tests/unit/Mage/Core/Helper/CookieTest.php
+++ b/tests/unit/Mage/Core/Helper/CookieTest.php
@@ -19,53 +19,49 @@
use Mage;
use Mage_Core_Helper_Cookie as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CookieTest extends TestCase
+class CookieTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/cookie');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/cookie');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testIsUserNotAllowSaveCookie(): void
{
- $this->assertIsBool($this->subject->isUserNotAllowSaveCookie());
+ static::assertIsBool(self::$subject->isUserNotAllowSaveCookie());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetAcceptedSaveCookiesWebsiteIds(): void
{
- $this->assertSame('{"1":1}', $this->subject->getAcceptedSaveCookiesWebsiteIds());
+ static::assertSame('{"1":1}', self::$subject->getAcceptedSaveCookiesWebsiteIds());
}
/**
* @covers Mage_Core_Helper_Cookie::getCookieRestrictionLifetime()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetCookieRestrictionLifetime(): void
{
- $this->assertSame(31536000, $this->subject->getCookieRestrictionLifetime());
+ static::assertSame(31536000, self::$subject->getCookieRestrictionLifetime());
}
/**
* @covers Mage_Core_Helper_Cookie::getCookieRestrictionNoticeCmsBlockIdentifier()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetCookieRestrictionNoticeCmsBlockIdentifier(): void
{
- $this->assertSame('cookie_restriction_notice_block', $this->subject->getCookieRestrictionNoticeCmsBlockIdentifier());
+ static::assertSame('cookie_restriction_notice_block', self::$subject->getCookieRestrictionNoticeCmsBlockIdentifier());
}
}
diff --git a/tests/unit/Mage/Core/Helper/DataTest.php b/tests/unit/Mage/Core/Helper/DataTest.php
index c316cb22f56..149471e795f 100644
--- a/tests/unit/Mage/Core/Helper/DataTest.php
+++ b/tests/unit/Mage/Core/Helper/DataTest.php
@@ -17,214 +17,137 @@
namespace OpenMage\Tests\Unit\Mage\Core\Helper;
-use Generator;
use Mage;
use Mage_Core_Helper_Data as Subject;
use Mage_Core_Model_Encryption;
use Mage_Core_Model_Locale;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Helper\DataTrait;
use Varien_Crypt_Mcrypt;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
+ use DataTrait;
+
public const TEST_STRING = '1234567890';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/data');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetEncryptor(): void
{
- $this->assertInstanceOf(Mage_Core_Model_Encryption::class, $this->subject->getEncryptor());
+ static::assertInstanceOf(Mage_Core_Model_Encryption::class, self::$subject->getEncryptor());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testEncrypt(): void
{
- $this->assertIsString($this->subject->encrypt('test'));
+ static::assertIsString(self::$subject->encrypt('test'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testDecrypt(): void
{
- $this->assertIsString($this->subject->decrypt('test'));
+ static::assertIsString(self::$subject->decrypt('test'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testValidateKey(): void
{
- $this->assertInstanceOf(Varien_Crypt_Mcrypt::class, $this->subject->validateKey('test'));
+ static::assertInstanceOf(Varien_Crypt_Mcrypt::class, self::$subject->validateKey('test'));
}
/**
* @dataProvider provideFormatTimezoneDate
- * @group Mage_Core
- * @group Mage_Core_Helper
- * @group Dates
+ * @group Helper
*/
public function testFormatTimezoneDate(
string $expectedResult,
- $data,
+ string|int|null $data,
string $format = Mage_Core_Model_Locale::FORMAT_TYPE_SHORT,
bool $showTime = false,
bool $useTimezone = false # disable timezone by default for tests
): void {
- $this->assertSame($expectedResult, $this->subject->formatTimezoneDate($data, $format, $showTime, $useTimezone));
- }
-
- public function provideFormatTimezoneDate(): Generator
- {
- $date = date_create()->getTimestamp();
- $dateShort = date('n/j/Y', $date);
- $dateLong = date('F j, Y', $date);
- $dateShortTime = date('n/j/Y g:i A', $date);
-
- yield 'null' => [
- $dateShort,
- null,
- ];
- yield 'empty date' => [
- $dateShort,
- '',
- ];
- yield 'string date' => [
- $dateShort,
- 'now',
- ];
- yield 'numeric date' => [
- $dateShort,
- '0',
- ];
- yield 'invalid date' => [
- '',
- 'invalid',
- ];
- yield 'invalid format' => [
- (string) $date,
- $date,
- 'invalid',
- ];
- yield 'date short' => [
- $dateShort,
- $date,
- ];
- yield 'date long' => [
- $dateLong,
- $date,
- 'long',
- ];
- // yield 'date short w/ time' => [
- // $dateShortTime,
- // $date,
- // 'short',
- // true,
- // ];
+ static::assertSame($expectedResult, self::$subject->formatTimezoneDate($data, $format, $showTime, $useTimezone));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetRandomString(): void
{
- $this->assertIsString($this->subject->getRandomString(5));
+ static::assertIsString(self::$subject->getRandomString(5));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetHash(): void
{
- $this->assertIsString($this->subject->getHash('test'));
+ static::assertIsString(self::$subject->getHash('test'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetHashPassword(): void
{
- $this->assertIsString($this->subject->getHashPassword('test', 1));
+ static::assertIsString(self::$subject->getHashPassword('test', 1));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testValidateHash(): void
{
- $this->assertIsBool($this->subject->validateHash('test', '1'));
+ static::assertIsBool(self::$subject->validateHash('test', '1'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetStoreId(): void
{
- $this->assertIsInt($this->subject->getStoreId());
+ static::assertIsInt(self::$subject->getStoreId());
}
/**
* @covers Mage_Core_Helper_Data::removeAccents()
* @dataProvider provideRemoveAccents
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testRemoveAccents(string $expectedResult, string $string, bool $german): void
{
- $this->assertSame($expectedResult, $this->subject->removeAccents($string, $german));
- }
-
- public function provideRemoveAccents(): Generator
- {
- $string = 'Ae-Ä Oe-Ö Ue-Ü ae-ä oe-ö ue-ü';
-
- yield 'german false' => [
- 'Ae-A Oe-O Ue-U ae-a oe-o ue-u',
- $string,
- false,
- ];
- yield 'german true' => [
- 'Ae-Ae Oe-Oe Ue-Ue ae-ae oe-oe ue-ue',
- $string,
- true,
- ];
+ static::assertSame($expectedResult, self::$subject->removeAccents($string, $german));
}
/**
* @covers Mage_Core_Helper_Data::isDevAllowed()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testIsDevAllowed(): void
{
- $this->assertIsBool($this->subject->isDevAllowed());
- $this->markTestIncomplete('add tests for IPS');
+ static::assertIsBool(self::$subject->isDevAllowed());
+ static::markTestIncomplete('add tests for IPS');
}
/**
* @covers Mage_Core_Helper_Data::getCacheTypes()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetCacheTypes(): void
{
@@ -239,45 +162,41 @@ public function testGetCacheTypes(): void
'config_api2' => 'Web Services Configuration',
];
- $this->assertSame($expectedResult, $this->subject->getCacheTypes());
+ static::assertSame($expectedResult, self::$subject->getCacheTypes());
}
/**
* @covers Mage_Core_Helper_Data::getCacheBetaTypes()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetCacheBetaTypes(): void
{
$expectedResult = [];
- $this->assertSame($expectedResult, $this->subject->getCacheBetaTypes());
+ static::assertSame($expectedResult, self::$subject->getCacheBetaTypes());
}
/**
* @covers Mage_Core_Helper_Data::uniqHash()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testUniqHash(): void
{
$prefix = 'string';
- $this->assertStringStartsWith($prefix, $this->subject->uniqHash($prefix));
+ static::assertStringStartsWith($prefix, self::$subject->uniqHash($prefix));
}
/**
* @covers Mage_Core_Helper_Data::getDefaultCountry()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetDefaultCountry(): void
{
- $this->assertSame('US', $this->subject->getDefaultCountry());
+ static::assertSame('US', self::$subject->getDefaultCountry());
}
/**
* @covers Mage_Core_Helper_Data::getProtectedFileExtensions()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetProtectedFileExtensions(): void
{
@@ -300,13 +219,12 @@ public function testGetProtectedFileExtensions(): void
'phtml' => 'phtml',
'shtml' => 'shtml',
];
- $this->assertSame($expectedResult, $this->subject->getProtectedFileExtensions());
+ static::assertSame($expectedResult, self::$subject->getProtectedFileExtensions());
}
/**
* @covers Mage_Core_Helper_Data::getPublicFilesValidPath()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetPublicFilesValidPath(): void
{
@@ -321,48 +239,43 @@ public function testGetPublicFilesValidPath(): void
'skin' => '/skin/*/*',
],
];
- $this->assertSame($expectedResult, $this->subject->getPublicFilesValidPath());
+ static::assertSame($expectedResult, self::$subject->getPublicFilesValidPath());
}
/**
* @covers Mage_Core_Helper_Data::useDbCompatibleMode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testUseDbCompatibleMode(): void
{
- $this->assertTrue($this->subject->useDbCompatibleMode());
+ static::assertTrue(self::$subject->useDbCompatibleMode());
}
/**
* @covers Mage_Core_Helper_Data::getMerchantCountryCode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetMerchantCountryCode(): void
{
- $this->assertIsString($this->subject->getMerchantCountryCode());
+ static::assertIsString(self::$subject->getMerchantCountryCode());
}
/**
* @covers Mage_Core_Helper_Data::getMerchantCountryCode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetMerchantVatNumber(): void
{
- $this->assertIsString($this->subject->getMerchantVatNumber());
+ static::assertIsString(self::$subject->getMerchantVatNumber());
}
/**
* @covers Mage_Core_Helper_Data::getMerchantCountryCode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @dataProvider provideIsCountryInEUData
+ * @group Helper
*/
- public function testIsCountryInEU(): void
+ public function testIsCountryInEU(bool $expectedResult, string $value): void
{
- $this->assertTrue($this->subject->isCountryInEU('DE'));
- $this->assertFalse($this->subject->isCountryInEU('XX'));
- $this->markTestIncomplete('add better tests');
+ static::assertSame($expectedResult, self::$subject->isCountryInEU($value));
}
}
diff --git a/tests/unit/Mage/Core/Helper/EnvironmentConfigLoaderTest.php b/tests/unit/Mage/Core/Helper/EnvironmentConfigLoaderTest.php
index 0f88704a3fe..87756702ab2 100644
--- a/tests/unit/Mage/Core/Helper/EnvironmentConfigLoaderTest.php
+++ b/tests/unit/Mage/Core/Helper/EnvironmentConfigLoaderTest.php
@@ -21,10 +21,10 @@
use Mage;
use Mage_Core_Exception;
use Mage_Core_Helper_EnvironmentConfigLoader;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Simplexml_Config;
-class EnvironmentConfigLoaderTest extends TestCase
+class EnvironmentConfigLoaderTest extends OpenMageTest
{
public const XML_PATH_GENERAL = 'general/store_information/name';
@@ -43,45 +43,41 @@ public function setup(): void
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testBuildPath(): void
{
$environmentConfigLoaderHelper = new EnvironmentConfigLoaderTestHelper();
$path = $environmentConfigLoaderHelper->exposedBuildPath('GENERAL', 'STORE_INFORMATION', 'NAME');
- $this->assertSame(self::XML_PATH_GENERAL, $path);
+ static::assertSame(self::XML_PATH_GENERAL, $path);
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testBuildNodePath(): void
{
$environmentConfigLoaderHelper = new EnvironmentConfigLoaderTestHelper();
$nodePath = $environmentConfigLoaderHelper->exposedBuildNodePath('DEFAULT', self::XML_PATH_GENERAL);
- $this->assertSame(self::XML_PATH_DEFAULT, $nodePath);
+ static::assertSame(self::XML_PATH_DEFAULT, $nodePath);
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testXmlHasTestStrings(): void
{
$xmlStruct = $this->getTestXml();
$xml = new Varien_Simplexml_Config();
$xml->loadString($xmlStruct);
- $this->assertSame('test_default', (string) $xml->getNode(self::XML_PATH_DEFAULT));
- $this->assertSame('test_website', (string) $xml->getNode(self::XML_PATH_WEBSITE));
- $this->assertSame('test_store', (string) $xml->getNode(self::XML_PATH_STORE));
+ static::assertSame('test_default', (string) $xml->getNode(self::XML_PATH_DEFAULT));
+ static::assertSame('test_website', (string) $xml->getNode(self::XML_PATH_WEBSITE));
+ static::assertSame('test_store', (string) $xml->getNode(self::XML_PATH_STORE));
}
/**
* @dataProvider envOverridesCorrectConfigKeysDataProvider
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*
* @param array $config
*/
@@ -106,7 +102,7 @@ public function testEnvOverridesForValidConfigKeys(array $config): void
$valueAfterOverride = $xml->getNode($configPath);
// assert
- $this->assertNotSame((string) $defaultValue, (string) $valueAfterOverride, 'Default value was not overridden.');
+ static::assertNotSame((string) $defaultValue, (string) $valueAfterOverride, 'Default value was not overridden.');
}
public function envOverridesCorrectConfigKeysDataProvider(): Generator
@@ -181,7 +177,7 @@ public function envOverridesCorrectConfigKeysDataProvider(): Generator
/**
* @dataProvider envDoesNotOverrideOnWrongConfigKeysDataProvider
- * @group Mage_Core
+ * @group Helper
*
* @param array $config
*/
@@ -195,11 +191,11 @@ public function testEnvDoesNotOverrideForInvalidConfigKeys(array $config): void
$xml->loadString($xmlStruct);
$defaultValue = 'test_default';
- $this->assertSame($defaultValue, (string) $xml->getNode(self::XML_PATH_DEFAULT));
+ static::assertSame($defaultValue, (string) $xml->getNode(self::XML_PATH_DEFAULT));
$defaultWebsiteValue = 'test_website';
- $this->assertSame($defaultWebsiteValue, (string) $xml->getNode(self::XML_PATH_WEBSITE));
+ static::assertSame($defaultWebsiteValue, (string) $xml->getNode(self::XML_PATH_WEBSITE));
$defaultStoreValue = 'test_store';
- $this->assertSame($defaultStoreValue, (string) $xml->getNode(self::XML_PATH_STORE));
+ static::assertSame($defaultStoreValue, (string) $xml->getNode(self::XML_PATH_STORE));
$loader = new Mage_Core_Helper_EnvironmentConfigLoader();
/** @phpstan-ignore method.internal */
@@ -222,7 +218,7 @@ public function testEnvDoesNotOverrideForInvalidConfigKeys(array $config): void
}
// assert
- $this->assertStringNotContainsString((string) $valueAfterCheck, 'value_will_not_be_changed', 'Default value was wrongfully overridden.');
+ static::assertStringNotContainsString((string) $valueAfterCheck, 'value_will_not_be_changed', 'Default value was wrongfully overridden.');
}
public function envDoesNotOverrideOnWrongConfigKeysDataProvider(): Generator
diff --git a/tests/unit/Mage/Core/Helper/HintTest.php b/tests/unit/Mage/Core/Helper/HintTest.php
index 0113107aac4..ca10bed95f0 100644
--- a/tests/unit/Mage/Core/Helper/HintTest.php
+++ b/tests/unit/Mage/Core/Helper/HintTest.php
@@ -19,35 +19,33 @@
use Mage;
use Mage_Core_Helper_Hint as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class HintTest extends TestCase
+class HintTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/hint');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/hint');
}
/**
* @covers Mage_Core_Helper_Hint::getAvailableHints()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetAvailableHints(): void
{
- $this->assertSame([], $this->subject->getAvailableHints());
+ static::assertSame([], self::$subject->getAvailableHints());
}
/**
* @covers Mage_Core_Helper_Hint::getHintByCode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetHintByCode(): void
{
- $this->assertNull($this->subject->getHintByCode('test'));
+ static::assertNull(self::$subject->getHintByCode('test'));
}
}
diff --git a/tests/unit/Mage/Core/Helper/JsTest.php b/tests/unit/Mage/Core/Helper/JsTest.php
index 843eb1cbbcd..4f34939b5a7 100644
--- a/tests/unit/Mage/Core/Helper/JsTest.php
+++ b/tests/unit/Mage/Core/Helper/JsTest.php
@@ -19,98 +19,90 @@
use Mage;
use Mage_Core_Helper_Js as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class JsTest extends TestCase
+class JsTest extends OpenMageTest
{
public const TEST_URL = 'foo';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/js');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/js');
}
/**
* @covers Mage_Core_Helper_Js::getTranslateJson()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetTranslateJson(): void
{
- $this->assertIsString($this->subject->getTranslateJson());
+ static::assertIsString(self::$subject->getTranslateJson());
}
/**
* @covers Mage_Core_Helper_Js::getTranslatorScript()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetTranslatorScript(): void
{
- $this->assertIsString($this->subject->getTranslatorScript());
+ static::assertIsString(self::$subject->getTranslatorScript());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testIncludeScript(): void
{
- $this->assertStringContainsString(self::TEST_URL, $this->subject->includeScript(self::TEST_URL));
+ static::assertStringContainsString(self::TEST_URL, self::$subject->includeScript(self::TEST_URL));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testIncludeSkinScript(): void
{
- $this->assertStringContainsString(self::TEST_URL, $this->subject->includeSkinScript(self::TEST_URL));
+ static::assertStringContainsString(self::TEST_URL, self::$subject->includeSkinScript(self::TEST_URL));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetDeleteConfirmJs(): void
{
- $this->assertStringStartsWith('deleteConfirm', $this->subject->getDeleteConfirmJs('foo'));
- $this->assertStringStartsWith('deleteConfirm', $this->subject->getDeleteConfirmJs('foo', 'bar'));
+ static::assertStringStartsWith('deleteConfirm', self::$subject->getDeleteConfirmJs('foo'));
+ static::assertStringStartsWith('deleteConfirm', self::$subject->getDeleteConfirmJs('foo', 'bar'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetConfirmSetLocationJs(): void
{
- $this->assertStringStartsWith('confirmSetLocation', $this->subject->getConfirmSetLocationJs('foo'));
- $this->assertStringStartsWith('confirmSetLocation', $this->subject->getConfirmSetLocationJs('foo', 'bar'));
+ static::assertStringStartsWith('confirmSetLocation', self::$subject->getConfirmSetLocationJs('foo'));
+ static::assertStringStartsWith('confirmSetLocation', self::$subject->getConfirmSetLocationJs('foo', 'bar'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetSetLocationJs(): void
{
- $result = $this->subject->getSetLocationJs(self::TEST_URL);
- $this->assertStringStartsWith('setLocation', $result);
- $this->assertStringContainsString(self::TEST_URL, $result);
+ $result = self::$subject->getSetLocationJs(self::TEST_URL);
+ static::assertStringStartsWith('setLocation', $result);
+ static::assertStringContainsString(self::TEST_URL, $result);
}
/**
* @covers Mage_Core_Helper_Js::getSaveAndContinueEditJs()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetSaveAndContinueEditJs(): void
{
- $result = $this->subject->getSaveAndContinueEditJs(self::TEST_URL);
- $this->assertStringStartsWith('saveAndContinueEdit', $result);
- $this->assertStringContainsString(self::TEST_URL, $result);
+ $result = self::$subject->getSaveAndContinueEditJs(self::TEST_URL);
+ static::assertStringStartsWith('saveAndContinueEdit', $result);
+ static::assertStringContainsString(self::TEST_URL, $result);
}
}
diff --git a/tests/unit/Mage/Core/Helper/PurifierTest.php b/tests/unit/Mage/Core/Helper/PurifierTest.php
index 83e7127d529..de23339bc26 100644
--- a/tests/unit/Mage/Core/Helper/PurifierTest.php
+++ b/tests/unit/Mage/Core/Helper/PurifierTest.php
@@ -17,40 +17,29 @@
namespace OpenMage\Tests\Unit\Mage\Core\Helper;
-use Generator;
use Mage;
use Mage_Core_Helper_Purifier as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Helper\PurifierTrait;
-class PurifierTest extends TestCase
+class PurifierTest extends OpenMageTest
{
- public Subject $subject;
+ use PurifierTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/purifier');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/purifier');
}
/**
* @dataProvider providePurify
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
- public function testPurify($expectedResult, $content): void
- {
- $this->assertSame($expectedResult, $this->subject->purify($content));
- }
-
- public function providePurify(): Generator
+ public function testPurify(array|string $expectedResult, array|string $content): void
{
- yield 'array' => [
- [],
- [],
- ];
- yield 'string' => [
- '',
- '',
- ];
+ static::assertSame($expectedResult, self::$subject->purify($content));
}
}
diff --git a/tests/unit/Mage/Core/Helper/SecurityTest.php b/tests/unit/Mage/Core/Helper/SecurityTest.php
index 8e0771de454..b64526d2a96 100644
--- a/tests/unit/Mage/Core/Helper/SecurityTest.php
+++ b/tests/unit/Mage/Core/Helper/SecurityTest.php
@@ -24,23 +24,22 @@
use Mage_Core_Exception;
use Mage_Core_Helper_Security as Subject;
use Mage_Page_Block_Html_Topmenu_Renderer;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use function sprintf;
-class SecurityTest extends TestCase
+class SecurityTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/security');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/security');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function validateAgainstBlockMethodBlacklistDataProvider(): Generator
{
@@ -64,15 +63,14 @@ public function validateAgainstBlockMethodBlacklistDataProvider(): Generator
* @param string[] $args
* @throws Mage_Core_Exception
*
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testValidateAgainstBlockMethodBlacklist(
Mage_Core_Block_Abstract $block,
string $method,
array $args
): void {
- $this->subject->validateAgainstBlockMethodBlacklist($block, $method, $args);
+ self::$subject->validateAgainstBlockMethodBlacklist($block, $method, $args);
}
public function forbiddenBlockMethodsDataProvider(): Generator
@@ -121,8 +119,7 @@ public function forbiddenBlockMethodsDataProvider(): Generator
* @param string[] $args
* @throws Mage_Core_Exception
*
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testValidateAgainstBlockMethodBlacklistThrowsException(
Mage_Core_Block_Abstract $block,
@@ -130,6 +127,6 @@ public function testValidateAgainstBlockMethodBlacklistThrowsException(
array $args
): void {
$this->expectExceptionMessage(sprintf('Action with combination block %s and method %s is forbidden.', get_class($block), $method));
- $this->subject->validateAgainstBlockMethodBlacklist($block, $method, $args);
+ self::$subject->validateAgainstBlockMethodBlacklist($block, $method, $args);
}
}
diff --git a/tests/unit/Mage/Core/Helper/StringTest.php b/tests/unit/Mage/Core/Helper/StringTest.php
index 5d32349c83b..6640bdc36e4 100644
--- a/tests/unit/Mage/Core/Helper/StringTest.php
+++ b/tests/unit/Mage/Core/Helper/StringTest.php
@@ -20,129 +20,119 @@
use Mage;
use Mage_Core_Helper_Array;
use Mage_Core_Helper_String as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class StringTest extends TestCase
+class StringTest extends OpenMageTest
{
public const TEST_STRING = '1234567890';
public const TEST_STRING_JSON = '{"name":"John", "age":30, "car":null}';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/string');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/string');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testTruncate(): void
{
- $this->assertSame('', $this->subject->truncate(null));
- $this->assertSame('', $this->subject->truncate(self::TEST_STRING, 0));
+ static::assertSame('', self::$subject->truncate(null));
+ static::assertSame('', self::$subject->truncate(self::TEST_STRING, 0));
- $this->assertSame('', $this->subject->truncate(self::TEST_STRING, 3));
+ static::assertSame('', self::$subject->truncate(self::TEST_STRING, 3));
$remainder = '';
- $this->assertSame('12...', $this->subject->truncate(self::TEST_STRING, 5, '...', $remainder, false));
+ static::assertSame('12...', self::$subject->truncate(self::TEST_STRING, 5, '...', $remainder, false));
- $resultString = $this->subject->truncate(self::TEST_STRING, 5, '...');
- $this->assertSame('12...', $resultString);
+ $resultString = self::$subject->truncate(self::TEST_STRING, 5, '...');
+ static::assertSame('12...', $resultString);
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testSubstr(): void
{
- $resultString = $this->subject->substr(self::TEST_STRING, 2, 2);
- $this->assertSame('34', $resultString);
+ $resultString = self::$subject->substr(self::TEST_STRING, 2, 2);
+ static::assertSame('34', $resultString);
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testSplitInjection(): void
{
- $resultString = $this->subject->splitInjection(self::TEST_STRING, 1, '-', ' ');
+ $resultString = self::$subject->splitInjection(self::TEST_STRING, 1, '-', ' ');
#$this->assertSame('1-2-3-4-5-6-7-8-9-0-', $resultString);
- $this->assertIsString($resultString);
+ static::assertIsString($resultString);
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testStrlen(): void
{
- $this->assertSame(10, $this->subject->strlen(self::TEST_STRING));
+ static::assertSame(10, self::$subject->strlen(self::TEST_STRING));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testStrSplit(): void
{
- $this->assertIsArray($this->subject->str_split(''));
- $this->assertIsArray($this->subject->str_split(self::TEST_STRING));
- $this->assertIsArray($this->subject->str_split(self::TEST_STRING, 3));
- $this->assertIsArray($this->subject->str_split(self::TEST_STRING, 3, true, true));
+ static::assertIsArray(self::$subject->str_split(''));
+ static::assertIsArray(self::$subject->str_split(self::TEST_STRING));
+ static::assertIsArray(self::$subject->str_split(self::TEST_STRING, 3));
+ static::assertIsArray(self::$subject->str_split(self::TEST_STRING, 3, true, true));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testSplitWords(): void
{
- $this->assertIsArray($this->subject->splitWords(null));
- $this->assertIsArray($this->subject->splitWords(''));
- $this->assertIsArray($this->subject->splitWords(self::TEST_STRING));
- $this->assertIsArray($this->subject->splitWords(self::TEST_STRING, true));
- $this->assertIsArray($this->subject->splitWords(self::TEST_STRING, true, 1));
+ static::assertIsArray(self::$subject->splitWords(null));
+ static::assertIsArray(self::$subject->splitWords(''));
+ static::assertIsArray(self::$subject->splitWords(self::TEST_STRING));
+ static::assertIsArray(self::$subject->splitWords(self::TEST_STRING, true));
+ static::assertIsArray(self::$subject->splitWords(self::TEST_STRING, true, 1));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testParseQueryStr(): void
{
- $this->assertIsArray($this->subject->parseQueryStr(self::TEST_STRING));
+ static::assertIsArray(self::$subject->parseQueryStr(self::TEST_STRING));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetArrayHelper(): void
{
- $this->assertInstanceOf(Mage_Core_Helper_Array::class, $this->subject->getArrayHelper());
+ static::assertInstanceOf(Mage_Core_Helper_Array::class, self::$subject->getArrayHelper());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testUnserialize(): void
{
- $this->assertNull($this->subject->unserialize(null));
+ static::assertNull(self::$subject->unserialize(null));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testValidateSerializedObject(): void
{
- $this->assertIsBool($this->subject->validateSerializedObject(self::TEST_STRING));
- $this->assertIsBool($this->subject->validateSerializedObject(self::TEST_STRING_JSON));
+ static::assertIsBool(self::$subject->validateSerializedObject(self::TEST_STRING));
+ static::assertIsBool(self::$subject->validateSerializedObject(self::TEST_STRING_JSON));
}
}
diff --git a/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php b/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php
index 41ea36f2a56..27a1a433c60 100644
--- a/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php
+++ b/tests/unit/Mage/Core/Helper/UnserializeArrayTest.php
@@ -18,54 +18,33 @@
namespace OpenMage\Tests\Unit\Mage\Core\Helper;
use Exception;
-use Generator;
use Mage;
use Mage_Core_Helper_UnserializeArray as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Helper\UnserializeArray as UnserializeArrayDataProvider;
-class UnserializeArrayTest extends TestCase
+class UnserializeArrayTest extends OpenMageTest
{
- public Subject $subject;
+ use UnserializeArrayDataProvider;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/unserializeArray');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/unserializeArray');
}
/**
* @dataProvider provideUnserialize
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
- public function testUnserialize($expectedTesult, $string): void
+ public function testUnserialize(array|string $expectedTesult, ?string $string): void
{
try {
- $this->assertSame($expectedTesult, $this->subject->unserialize($string));
+ static::assertSame($expectedTesult, self::$subject->unserialize($string));
} catch (Exception $exception) {
- $this->assertSame($expectedTesult, $exception->getMessage());
+ static::assertSame($expectedTesult, $exception->getMessage());
}
}
-
- public function provideUnserialize(): Generator
- {
- $errorMessage = 'Error unserializing data.';
-
- yield 'null' => [
- $errorMessage,
- null,
- ];
- yield 'empty string' => [
- $errorMessage,
- '',
- ];
- yield 'random string' => [
- $errorMessage,
- 'abc',
- ];
- yield 'valid' => [
- ['key' => 'value'],
- 'a:1:{s:3:"key";s:5:"value";}',
- ];
- }
}
diff --git a/tests/unit/Mage/Core/Helper/UrlTest.php b/tests/unit/Mage/Core/Helper/UrlTest.php
index 311e852e381..b2f78fc9669 100644
--- a/tests/unit/Mage/Core/Helper/UrlTest.php
+++ b/tests/unit/Mage/Core/Helper/UrlTest.php
@@ -17,196 +17,90 @@
namespace OpenMage\Tests\Unit\Mage\Core\Helper;
-use Generator;
+use Exception;
use Mage;
use Mage_Core_Helper_Url as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Helper\UrlTrait;
-class UrlTest extends TestCase
+class UrlTest extends OpenMageTest
{
- public const TEST_URL_BASE = 'https://example.com';
+ use UrlTrait;
- public const TEST_URL_PARAM = 'https://example.com?foo=bar';
+ private static Subject $subject;
- public const TEST_URL_PARAMS = 'https://example.com?foo=bar&BOO=baz';
-
- public const TEST_URL_SID1 = 'https://example.com?SID=S&foo=bar&BOO=baz';
-
- public const TEST_URL_SID2 = 'https://example.com?___SID=S&foo=bar&BOO=baz';
-
- public const TEST_URL_SID_BOTH = 'https://example.com?___SID=S&SID=S&foo=bar&BOO=baz';
-
- public const TEST_URL_PUNY = 'https://XN--example.com?foo=bar&BOO=baz';
-
- public Subject $subject;
-
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('core/url');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('core/url');
}
/**
* @covers Mage_Core_Helper_Url::getCurrentBase64Url()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetCurrentBase64Url(): void
{
- $this->assertIsString($this->subject->getCurrentBase64Url());
+ static::assertIsString(self::$subject->getCurrentBase64Url());
}
/**
* @covers Mage_Core_Helper_Url::getEncodedUrl()
* @dataProvider provideGetEncodedUrl
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetEncodedUrl(string $expectedResult, ?string $url): void
{
- $this->assertSame($expectedResult, $this->subject->getEncodedUrl($url));
- }
-
- public function provideGetEncodedUrl(): Generator
- {
- yield 'null' => [
- 'aHR0cDovLw,,',
- null,
- ];
- yield 'base url' => [
- 'aHR0cHM6Ly9leGFtcGxlLmNvbQ,,',
- self::TEST_URL_BASE,
- ];
+ static::assertSame($expectedResult, self::$subject->getEncodedUrl($url));
}
/**
* @covers Mage_Core_Helper_Url::getHomeUrl()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testGetHomeUrl(): void
{
- $this->assertIsString($this->subject->getHomeUrl());
+ static::assertIsString(self::$subject->getHomeUrl());
}
/**
* @covers Mage_Core_Helper_Url::addRequestParam()
* @dataProvider provideAddRequestParam
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testAddRequestParam(string $expectedResult, string $url, array $param): void
{
- $this->assertSame($expectedResult, $this->subject->addRequestParam($url, $param));
- }
-
- public function provideAddRequestParam(): Generator
- {
- yield 'int key' => [
- self::TEST_URL_BASE . '?',
- self::TEST_URL_BASE,
- [0 => 'int'],
- ];
- yield 'int value' => [
- self::TEST_URL_BASE . '?int=0',
- self::TEST_URL_BASE,
- ['int' => 0],
- ];
- yield 'null' => [
- self::TEST_URL_BASE . '?null',
- self::TEST_URL_BASE,
- ['null' => null],
- ];
- yield 'string' => [
- self::TEST_URL_PARAM,
- self::TEST_URL_BASE,
- ['foo' => 'bar'],
- ];
- yield 'string extend' => [
- self::TEST_URL_PARAMS,
- self::TEST_URL_PARAM,
- ['BOO' => 'baz'],
- ];
- yield 'array' => [
- self::TEST_URL_BASE . '?key[]=subValue',
- self::TEST_URL_BASE,
- ['key' => ['subKey' => 'subValue']],
- ];
+ static::assertSame($expectedResult, self::$subject->addRequestParam($url, $param));
}
/**
* @covers Mage_Core_Helper_Url::removeRequestParam()
* @dataProvider provideRemoveRequestParam
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testRemoveRequestParam(string $expectedResult, string $url, string $paramKey, bool $caseSensitive = false): void
{
- $this->assertSame($expectedResult, $this->subject->removeRequestParam($url, $paramKey, $caseSensitive));
- }
-
- public function provideRemoveRequestParam(): Generator
- {
- yield 'remove #1' => [
- self::TEST_URL_BASE,
- self::TEST_URL_PARAM,
- 'foo',
- ];
- yield 'remove #2' => [
- self::TEST_URL_PARAMS,
- self::TEST_URL_PARAMS,
- 'boo',
- ];
- yield 'remove #1 case sensitive' => [
- self::TEST_URL_PARAM,
- self::TEST_URL_PARAM,
- 'FOO',
- true,
- ];
- yield 'remove #2 case sensitive' => [
- self::TEST_URL_PARAM,
- self::TEST_URL_PARAMS,
- 'BOO',
- true,
- ];
- yield 'not-exists' => [
- self::TEST_URL_PARAMS,
- self::TEST_URL_PARAMS,
- 'not-exists',
- ];
- yield '___SID' => [
- self::TEST_URL_SID1,
- self::TEST_URL_SID_BOTH,
- '___SID',
- ];
- yield 'SID' => [
- self::TEST_URL_SID2,
- self::TEST_URL_SID_BOTH,
- 'SID',
- ];
+ static::assertSame($expectedResult, self::$subject->removeRequestParam($url, $paramKey, $caseSensitive));
}
/**
* @covers Mage_Core_Helper_Url::encodePunycode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
*/
public function testEncodePunycode(): void
{
- $this->assertSame(self::TEST_URL_BASE, $this->subject->encodePunycode(self::TEST_URL_BASE));
- $this->assertSame(self::TEST_URL_PUNY, $this->subject->encodePunycode(self::TEST_URL_PUNY));
- $this->markTestIncomplete('This test has to be checked.');
+ static::assertSame(self::$testUrlBase, self::$subject->encodePunycode(self::$testUrlBase));
+ static::assertSame(self::$testUrlPuny, self::$subject->encodePunycode(self::$testUrlPuny));
}
/**
* @covers Mage_Core_Helper_Url::decodePunycode()
- * @group Mage_Core
- * @group Mage_Core_Helper
+ * @group Helper
+ * @throws Exception
*/
public function testDecodePunycode(): void
{
- $this->assertSame(self::TEST_URL_BASE, $this->subject->decodePunycode(self::TEST_URL_BASE));
- $this->assertSame('https://?foo=bar&BOO=baz', $this->subject->decodePunycode(self::TEST_URL_PUNY));
- $this->markTestIncomplete('This test has to be checked.');
+ static::assertSame(self::$testUrlBase, self::$subject->decodePunycode(self::$testUrlBase));
+ static::assertSame('https://?foo=bar&BOO=baz', self::$subject->decodePunycode(self::$testUrlPuny));
}
}
diff --git a/tests/unit/Mage/Core/Model/AppTest.php b/tests/unit/Mage/Core/Model/AppTest.php
index c88ef46bbee..9e3daefb808 100644
--- a/tests/unit/Mage/Core/Model/AppTest.php
+++ b/tests/unit/Mage/Core/Model/AppTest.php
@@ -4,7 +4,6 @@
namespace OpenMage\Tests\Unit\Mage\Core\Model;
-use Generator;
use Mage;
use Mage_Core_Exception;
use Mage_Core_Model_App as Subject;
@@ -13,91 +12,63 @@
use Mage_Core_Model_Store_Group;
use Mage_Core_Model_Website;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Model\AppTrait;
+use OpenMage\Tests\Unit\OpenMageTest;
-class AppTest extends TestCase
+class AppTest extends OpenMageTest
{
+ use AppTrait;
use CoreTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- $this->subject = Mage::app();
+ self::$subject = Mage::app();
}
/**
* @dataProvider provideGetStoreConfig
* @dataProvider provideGetStore
- * @group Mage_Core
- * @group Mage_Core_Model
- *
- * @param bool|int|Mage_Core_Model_Store|null|string $id
+ * @group Model
*/
- public function testGetStore($id): void
+ public function testGetStore(Mage_Core_Model_Store|int|string|bool|null $id): void
{
try {
- $this->assertInstanceOf(Mage_Core_Model_Store::class, $this->subject->getStore($id));
+ static::assertInstanceOf(Mage_Core_Model_Store::class, self::$subject->getStore($id));
} catch (Mage_Core_Model_Store_Exception $e) {
- $this->assertNotEmpty($e->getMessage());
- $this->assertSame('Invalid store code requested.', $e->getMessage());
+ static::assertNotEmpty($e->getMessage());
+ static::assertSame('Invalid store code requested.', $e->getMessage());
}
}
- public function provideGetStore(): Generator
- {
- yield 'Mage_Core_Model_Store' => [
- new Mage_Core_Model_Store(),
- ];
- }
-
/**
* @dataProvider provideGetStoreConfig
* @dataProvider provideGetWebsite
- * @group Mage_Core
- * @group Mage_Core_Model
- *
- * @param int|Mage_Core_Model_Website|null|string|true $id
+ * @group Model
*/
- public function testGetWebsite($id): void
+ public function testGetWebsite(Mage_Core_Model_Website|int|string|bool|null $id): void
{
try {
- $this->assertInstanceOf(Mage_Core_Model_Website::class, $this->subject->getWebsite($id));
- } catch (Mage_Core_Exception $e) {
- $this->assertNotEmpty($e->getMessage());
- $this->assertSame('Invalid website id requested.', $e->getMessage());
+ static::assertInstanceOf(Mage_Core_Model_Website::class, self::$subject->getWebsite($id));
+ } catch (Mage_Core_Exception $exception) {
+ static::assertNotEmpty($exception->getMessage());
+ static::assertSame('Invalid website id requested.', $exception->getMessage());
}
}
- public function provideGetWebsite(): Generator
- {
- yield 'Mage_Core_Model_Website' => [
- new Mage_Core_Model_Website(),
- ];
- }
-
/**
* @dataProvider provideGetStoreConfig
* @dataProvider provideGetGroup
- * @group Mage_Core
- * @group Mage_Core_Model
- *
- * @param int|Mage_Core_Model_Store_Group|null|string $id
+ * @group Model
*/
- public function testGetGroup($id): void
+ public function testGetGroup(Mage_Core_Model_Store_Group|int|string|bool|null $id): void
{
try {
- $this->assertInstanceOf(Mage_Core_Model_Store_Group::class, $this->subject->getGroup($id));
+ static::assertInstanceOf(Mage_Core_Model_Store_Group::class, self::$subject->getGroup($id));
} catch (Mage_Core_Exception $e) {
- $this->assertNotEmpty($e->getMessage());
- $this->assertSame('Invalid store group id requested.', $e->getMessage());
+ static::assertNotEmpty($e->getMessage());
+ static::assertSame('Invalid store group id requested.', $e->getMessage());
}
}
-
- public function provideGetGroup(): Generator
- {
- yield 'Mage_Core_Model_Store_Group' => [
- new Mage_Core_Model_Store_Group(),
- ];
- }
}
diff --git a/tests/unit/Mage/Core/Model/ConfigTest.php b/tests/unit/Mage/Core/Model/ConfigTest.php
index 28e24abdeb5..6be08a37b8b 100644
--- a/tests/unit/Mage/Core/Model/ConfigTest.php
+++ b/tests/unit/Mage/Core/Model/ConfigTest.php
@@ -19,33 +19,32 @@
use Mage;
use Mage_Core_Model_Config as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ConfigTest extends TestCase
+class ConfigTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/config');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/config');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testSaveDeleteGetConfig(): void
{
$path = 'test/config';
$value = 'foo';
- $this->assertFalse($this->subject->getConfig($path));
+ static::assertFalse(self::$subject->getConfig($path));
- $this->subject->saveConfig($path, $value);
- $this->assertSame($value, $this->subject->getConfig($path));
+ self::$subject->saveConfig($path, $value);
+ static::assertSame($value, self::$subject->getConfig($path));
- $this->subject->deleteConfig($path);
- $this->assertFalse($this->subject->getConfig($path));
+ self::$subject->deleteConfig($path);
+ static::assertFalse(self::$subject->getConfig($path));
}
}
diff --git a/tests/unit/Mage/Core/Model/Email/Template/AbstractTest.php b/tests/unit/Mage/Core/Model/Email/Template/AbstractTest.php
new file mode 100644
index 00000000000..c1e416fca4d
--- /dev/null
+++ b/tests/unit/Mage/Core/Model/Email/Template/AbstractTest.php
@@ -0,0 +1,52 @@
+getMockForAbstractClass(Subject::class);
+ }
+
+ /**
+ * @dataProvider provideValidateFileExension
+ * @group Model
+ */
+ public function testValidateFileExension(bool $expectedResult, string $filePath, string $extension, bool $fileExists): void
+ {
+ if ($fileExists) {
+ static::assertFileExists($filePath);
+ } else {
+ static::assertFileDoesNotExist($filePath);
+ }
+
+ static::markTestSkipped('wait...');
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertSame($expectedResult, self::$subject->validateFileExension($filePath, $extension));
+ }
+}
diff --git a/tests/unit/Mage/Core/Model/LayoutTest.php b/tests/unit/Mage/Core/Model/LayoutTest.php
index 0384ca5f2ac..8204c55a095 100644
--- a/tests/unit/Mage/Core/Model/LayoutTest.php
+++ b/tests/unit/Mage/Core/Model/LayoutTest.php
@@ -20,73 +20,59 @@
use Error;
use Generator;
use Mage;
-use Mage_Core_Model_Layout;
+use Mage_Core_Block_Abstract;
+use Mage_Core_Model_Layout as Subject;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Model\LayoutTrait;
use OpenMage\Tests\Unit\Traits\PhpStormMetaData\BlocksTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class LayoutTest extends TestCase
+class LayoutTest extends OpenMageTest
{
use BlocksTrait;
+ use LayoutTrait;
- public Mage_Core_Model_Layout $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/layout');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/layout');
}
/**
* @dataProvider provideCreateBlock
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
+ *
+ * @param bool|class-string $expectedResult
*/
- public function testCreateBlock($expectedResult, bool $willReturnBlock, string $type, ?string $name, array $attributes): void
+ public function testCreateBlock(bool|string $expectedResult, bool $willReturnBlock, string $type, ?string $name, array $attributes): void
{
- $result = $this->subject->createBlock($type, $name, $attributes);
+ $result = self::$subject->createBlock($type, $name, $attributes);
- if ($willReturnBlock) {
- $this->assertInstanceOf($expectedResult, $result);
+ if ($willReturnBlock && is_string($expectedResult)) {
+ static::assertInstanceOf($expectedResult, $result);
} else {
- $this->assertFalse($result);
+ static::assertFalse($result);
}
}
- public function provideCreateBlock(): Generator
- {
- yield 'instance of Mage_Core_Block_Abstract' => [
- \Mage_Cms_Block_Block::class,
- true,
- 'cms/block',
- null,
- [],
- ];
- yield 'not instance of Mage_Core_Block_Abstract' => [
- false,
- false,
- 'rule/conditions',
- null,
- [],
- ];
- }
-
/**
* @covers Mage_Core_Model_Layout::getBlockSingleton()
* @dataProvider provideGetBlockSingleton
- * @group Mage_Core
- * @group Mage_Core_Model
- * @group pr4411
+ * @group Model
+ *
+ * @param class-string $expectedResult
*/
- public function testGetBlockSingleton($expectedResult, bool $isAbstractBlock, string $type): void
+ public function testGetBlockSingleton(string $expectedResult, bool $isAbstractBlock, string $type): void
{
- $result = $this->subject->getBlockSingleton($type);
+ $result = self::$subject->getBlockSingleton($type);
- $this->assertInstanceOf($expectedResult, $result);
+ static::assertInstanceOf($expectedResult, $result);
if ($isAbstractBlock) {
- $this->assertInstanceOf(\Mage_Core_Block_Abstract::class, $result);
+ static::assertInstanceOf(Mage_Core_Block_Abstract::class, $result);
} else {
- $this->assertNotInstanceOf(\Mage_Core_Block_Abstract::class, $result);
+ static::assertNotInstanceOf(Mage_Core_Block_Abstract::class, $result);
}
}
@@ -120,8 +106,7 @@ public function provideGetBlockSingleton(): Generator
/**
* @covers Mage_Core_Model_Layout::getBlockSingleton()
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetBlockSingletonError(): void
{
@@ -132,6 +117,6 @@ public function testGetBlockSingletonError(): void
$this->expectExceptionMessage("Class 'Mage_Invalid_Block_Type' not found");
}
- $this->subject->getBlockSingleton('invalid/type');
+ self::$subject->getBlockSingleton('invalid/type');
}
}
diff --git a/tests/unit/Mage/Core/Model/LocaleTest.php b/tests/unit/Mage/Core/Model/LocaleTest.php
index 32f41b52a46..f814079a178 100644
--- a/tests/unit/Mage/Core/Model/LocaleTest.php
+++ b/tests/unit/Mage/Core/Model/LocaleTest.php
@@ -20,28 +20,28 @@
use Mage;
use Mage_Core_Model_Locale as Subject;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Catalog\Model\LocaleTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class LocaleTest extends TestCase
+class LocaleTest extends OpenMageTest
{
use LocaleTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/locale');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/locale');
}
/**
* @dataProvider provideGetNumberData
* @param string|float|int $value
*
- * @group Mage_Core
+ * @group Model
*/
public function testGetNumber(?float $expectedResult, $value): void
{
- $this->assertSame($expectedResult, $this->subject->getNumber($value));
+ static::assertSame($expectedResult, self::$subject->getNumber($value));
}
}
diff --git a/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php b/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php
index f3c4d7162ef..3ceca832d61 100644
--- a/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php
+++ b/tests/unit/Mage/Core/Model/Security/HtmlEscapedStringTest.php
@@ -17,65 +17,37 @@
namespace OpenMage\Tests\Unit\Mage\Core\Model\Security;
-use Generator;
use Mage_Core_Model_Security_HtmlEscapedString as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\Model\SecurityTrait;
-class HtmlEscapedStringTest extends TestCase
+class HtmlEscapedStringTest extends OpenMageTest
{
- public const TEST_STRING = 'This is a bold string';
+ use SecurityTrait;
- public Subject $subject;
+ private static Subject $subject;
/**
* @dataProvider provideHtmlEscapedStringAsStringData
* @param array $allowedTags
*
- * @group Mage_Core
+ * @group Model
*/
public function testToSting(string $expectedResult, string $string, ?array $allowedTags): void
{
- $this->subject = new Subject($string, $allowedTags);
- $this->assertSame($expectedResult, $this->subject->__toString());
+ self::$subject = new Subject($string, $allowedTags);
+ static::assertSame($expectedResult, self::$subject->__toString());
}
/**
* @dataProvider provideHtmlEscapedStringGetUnescapedValueData
* @param array $allowedTags
*
- * @group Mage_Core
+ * @group Model
*/
public function testGetUnescapedValue(string $expectedResult, string $string, ?array $allowedTags): void
{
- $this->subject = new Subject($string, $allowedTags);
- $this->assertSame($expectedResult, $this->subject->getUnescapedValue());
- }
-
- public function provideHtmlEscapedStringAsStringData(): Generator
- {
- yield 'tags null' => [
- 'This is a bold <b>string</b>',
- self::TEST_STRING,
- null,
- ];
- yield 'tags array' => [
- self::TEST_STRING,
- self::TEST_STRING,
- ['b'],
- ];
- }
-
- public function provideHtmlEscapedStringGetUnescapedValueData(): Generator
- {
- yield 'tags null' => [
- self::TEST_STRING,
- self::TEST_STRING,
- null,
- ];
- yield 'tags array' => [
- self::TEST_STRING,
- self::TEST_STRING,
- ['some-invalid-value'],
- ];
+ self::$subject = new Subject($string, $allowedTags);
+ static::assertSame($expectedResult, self::$subject->getUnescapedValue());
}
}
diff --git a/tests/unit/Mage/Core/Model/StoreTest.php b/tests/unit/Mage/Core/Model/StoreTest.php
index fdbbc00f77a..16196491cf9 100644
--- a/tests/unit/Mage/Core/Model/StoreTest.php
+++ b/tests/unit/Mage/Core/Model/StoreTest.php
@@ -20,32 +20,30 @@
use Mage;
use Mage_Core_Model_Store as Subject;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Core\CoreTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class StoreTest extends TestCase
+class StoreTest extends OpenMageTest
{
use CoreTrait;
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/store');
+ self::$subject = Mage::getModel('core/store');
}
/**
* @covers Mage_Core_Model_Store::getId()
* @dataProvider provideGetStoreId
* @param string|int|null $withStore
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetId(?int $expectedResult, $withStore): void
{
if ($withStore) {
- $this->subject->setData('store_id', $withStore);
+ self::$subject->setData('store_id', $withStore);
}
- $this->assertSame($expectedResult, $this->subject->getId());
+ static::assertSame($expectedResult, self::$subject->getId());
}
}
diff --git a/tests/unit/Mage/Core/Model/UrlTest.php b/tests/unit/Mage/Core/Model/UrlTest.php
index e7ef38908fe..a2d02123549 100644
--- a/tests/unit/Mage/Core/Model/UrlTest.php
+++ b/tests/unit/Mage/Core/Model/UrlTest.php
@@ -19,33 +19,31 @@
use Mage;
use Mage_Core_Model_Url as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class UrlTest extends TestCase
+class UrlTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/url');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/url');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testEscape(): void
{
- $this->assertSame('%22%27%3E%3C', $this->subject->escape('"\'><'));
+ static::assertSame('%22%27%3E%3C', self::$subject->escape('"\'><'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetSecure(): void
{
- $this->assertIsBool($this->subject->getSecure());
+ static::assertIsBool(self::$subject->getSecure());
}
}
diff --git a/tests/unit/Mage/Core/Model/VariableTest.php b/tests/unit/Mage/Core/Model/VariableTest.php
index 9199a9adca0..8711363a047 100644
--- a/tests/unit/Mage/Core/Model/VariableTest.php
+++ b/tests/unit/Mage/Core/Model/VariableTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Core_Model_Variable as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class VariableTest extends TestCase
+class VariableTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/variable');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/variable');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetVariablesOptionArray(): void
{
- $this->assertIsArray($this->subject->getVariablesOptionArray());
+ static::assertIsArray(self::$subject->getVariablesOptionArray());
}
}
diff --git a/tests/unit/Mage/Core/Model/WebsiteTest.php b/tests/unit/Mage/Core/Model/WebsiteTest.php
index 569a7ee67a2..b8c8c9f4d57 100644
--- a/tests/unit/Mage/Core/Model/WebsiteTest.php
+++ b/tests/unit/Mage/Core/Model/WebsiteTest.php
@@ -22,156 +22,142 @@
use Mage_Core_Model_Resource_Store_Group_Collection;
use Mage_Core_Model_Website as Subject;
use Mage_Directory_Model_Currency;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Db_Select;
-class WebsiteTest extends TestCase
+class WebsiteTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('core/website');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('core/website');
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testLoad(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->load(1));
- $this->assertInstanceOf(Subject::class, $this->subject->load('default'));
+ static::assertInstanceOf(Subject::class, self::$subject->load(1));
+ static::assertInstanceOf(Subject::class, self::$subject->load('default'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testLoadConfig(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->loadConfig('1'));
- $this->assertInstanceOf(Subject::class, $this->subject->loadConfig('default'));
+ static::assertInstanceOf(Subject::class, self::$subject->loadConfig('1'));
+ static::assertInstanceOf(Subject::class, self::$subject->loadConfig('default'));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetStoreCollection(): void
{
- $this->assertInstanceOf(Mage_Core_Model_Resource_Store_Collection::class, $this->subject->getStoreCollection());
+ static::assertInstanceOf(Mage_Core_Model_Resource_Store_Collection::class, self::$subject->getStoreCollection());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetGroupCollection(): void
{
- $this->assertInstanceOf(Mage_Core_Model_Resource_Store_Group_Collection::class, $this->subject->getGroupCollection());
+ static::assertInstanceOf(Mage_Core_Model_Resource_Store_Group_Collection::class, self::$subject->getGroupCollection());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetStores(): void
{
- $this->assertIsArray($this->subject->getStores());
+ static::assertIsArray(self::$subject->getStores());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetStoreIds(): void
{
- $this->assertIsArray($this->subject->getStoreIds());
+ static::assertIsArray(self::$subject->getStoreIds());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetStoreCodes(): void
{
- $this->assertIsArray($this->subject->getStoreCodes());
+ static::assertIsArray(self::$subject->getStoreCodes());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetStoresCount(): void
{
- $this->assertIsInt($this->subject->getStoresCount());
+ static::assertIsInt(self::$subject->getStoresCount());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetGroups(): void
{
- $this->assertIsArray($this->subject->getGroups());
+ static::assertIsArray(self::$subject->getGroups());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetGroupIds(): void
{
- $this->assertIsArray($this->subject->getGroupIds());
+ static::assertIsArray(self::$subject->getGroupIds());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetGroupsCount(): void
{
- $this->assertIsInt($this->subject->getGroupsCount());
+ static::assertIsInt(self::$subject->getGroupsCount());
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testGetBaseCurrency(): void
{
- $this->assertIsObject($this->subject->getBaseCurrency());
- $this->assertInstanceOf(Mage_Directory_Model_Currency::class, $this->subject->getBaseCurrency());
+ static::assertIsObject(self::$subject->getBaseCurrency());
+ static::assertInstanceOf(Mage_Directory_Model_Currency::class, self::$subject->getBaseCurrency());
}
// /**
- // * @group Mage_Core
- // * @group Mage_Core_Model
+ // * @group Model
// */
// public function testGetDefaultStore(): void
// {
- // $this->assertIsObject($this->subject->getDefaultStore());
- // $this->assertInstanceOf(Mage_Core_Model_Store::class, $this->subject->getDefaultStore());
+ // $this->assertIsObject(self::$subject->getDefaultStore());
+ // $this->assertInstanceOf(Mage_Core_Model_Store::class, self::$subject->getDefaultStore());
// }
/**
- * @group Mage_Core
+ * @group Model
*/
public function testGetDefaultStoresSelect(): void
{
- $this->assertIsObject($this->subject->getDefaultStoresSelect());
- $this->assertInstanceOf(Varien_Db_Select::class, $this->subject->getDefaultStoresSelect(true));
+ static::assertIsObject(self::$subject->getDefaultStoresSelect());
+ static::assertInstanceOf(Varien_Db_Select::class, self::$subject->getDefaultStoresSelect(true));
}
/**
- * @group Mage_Core
- * @group Mage_Core_Model
+ * @group Model
*/
public function testIsReadOnly(): void
{
- $this->assertFalse($this->subject->isReadOnly());
- $this->assertTrue($this->subject->isReadOnly(true));
+ static::assertFalse(self::$subject->isReadOnly());
+ static::assertTrue(self::$subject->isReadOnly(true));
}
}
diff --git a/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php b/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php
index 4f37d1ffd55..7da21d1f4fc 100644
--- a/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php
+++ b/tests/unit/Mage/Customer/Model/Convert/Adapter/CustomerTest.php
@@ -19,30 +19,30 @@
use Mage;
use Mage_Customer_Model_Convert_Adapter_Customer as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Throwable;
-class CustomerTest extends TestCase
+class CustomerTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('customer/convert_adapter_customer');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('customer/convert_adapter_customer');
}
// /**
// * @return void
// * @throws Throwable
// *
- // * @group Mage_Customer
+ // * @group Model
// */
// public function testSaveRowNoWebsite(): void
// {
// $data = [];
// try {
- // $this->subject->saveRow($data);
+ // self::$subject->saveRow($data);
// $this->fail();
// } catch (Mage_Core_Exception $e) {
// $this->assertSame('Skipping import row, required field "website" is not defined.', $e->getMessage());
@@ -53,7 +53,7 @@ public function setUp(): void
// * @return void
// * @throws Throwable
// *
- // * @group Mage_Customer
+ // * @group Model
// */
// public function testSaveRowNoEmail(): void
// {
@@ -61,7 +61,7 @@ public function setUp(): void
// 'website' => 'base',
// ];
// try {
- // $this->subject->saveRow($data);
+ // self::$subject->saveRow($data);
// $this->fail();
// } catch (Mage_Core_Exception $e) {
// $this->assertSame('Skipping import row, required field "email" is not defined.', $e->getMessage());
@@ -72,7 +72,7 @@ public function setUp(): void
// * @return void
// * @throws Throwable
// *
- // * @group Mage_Customer
+ // * @group Model
// */
// public function testSaveRowNoGroup(): void
// {
@@ -81,7 +81,7 @@ public function setUp(): void
// 'email' => 'test@example.com',
// ];
// try {
- // $this->subject->saveRow($data);
+ // self::$subject->saveRow($data);
// $this->fail();
// } catch (Mage_Core_Exception $e) {
// $this->assertSame('Skipping import row, the value "" is not valid for the "group" field.', $e->getMessage());
@@ -92,7 +92,7 @@ public function setUp(): void
// * @return void
// * @throws Throwable
// *
- // * @group Mage_Customer
+ // * @group Model
// */
// public function testSaveRowNoFirstname(): void
// {
@@ -102,7 +102,7 @@ public function setUp(): void
// 'group' => 'General',
// ];
// try {
- // $this->subject->saveRow($data);
+ // self::$subject->saveRow($data);
// $this->fail();
// } catch (Mage_Core_Exception $e) {
// $this->expectExceptionMessage('Skip import row, required field "firstname" for the new customer is not defined.');
@@ -113,7 +113,7 @@ public function setUp(): void
// * @return void
// * @throws Throwable
// *
- // * @group Mage_Customer
+ // * @group Model
// */
// public function testSaveRowNoLastname(): void
// {
@@ -124,7 +124,7 @@ public function setUp(): void
// 'firstname' => 'John',
// ];
// try {
- // $this->subject->saveRow($data);
+ // self::$subject->saveRow($data);
// $this->fail();
// } catch (Mage_Core_Exception $e) {
// $this->assertSame('Skip import row, required field "lastname" for the new customer is not defined.', $e->getMessage());
@@ -132,7 +132,7 @@ public function setUp(): void
// }
/**
* @throws Throwable
- * @group Mage_Customer
+ * @group Model
*/
public function testSaveRow(): void
{
@@ -143,6 +143,6 @@ public function testSaveRow(): void
'firstname' => 'John',
'lastname' => 'Doe',
];
- $this->assertInstanceOf(Subject::class, $this->subject->saveRow($data));
+ static::assertInstanceOf(Subject::class, self::$subject->saveRow($data));
}
}
diff --git a/tests/unit/Mage/Customer/Model/CustomerTest.php b/tests/unit/Mage/Customer/Model/CustomerTest.php
index 28d25c2a7a1..d5494efc371 100644
--- a/tests/unit/Mage/Customer/Model/CustomerTest.php
+++ b/tests/unit/Mage/Customer/Model/CustomerTest.php
@@ -9,7 +9,7 @@
*
* @category OpenMage
* @package OpenMage_Tests
- * @copyright Copyright (c) 2024 The OpenMage Contributors (https://www.openmage.org)
+ * @copyright Copyright (c) 2024-2025 The OpenMage Contributors (https://www.openmage.org)
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
@@ -17,27 +17,27 @@
namespace OpenMage\Tests\Unit\Mage\Customer\Model;
-use Mage;
+use Mage_Core_Exception;
use Mage_Customer_Model_Customer as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Customer\CustomerTrait;
+use Zend_Validate_Exception;
-class CustomerTest extends TestCase
+class CustomerTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = Mage::getModel('customer/customer');
- }
+ use CustomerTrait;
/**
- * @group Mage_Customer
- * @group Mage_Customer_Model
+ * @dataProvider provideValidateCustomerData
+ * @param array|true $expectedResult
+ * @throws Mage_Core_Exception
+ * @throws Zend_Validate_Exception
*/
- public function testValidateAddress(): void
+ public function testValidate($expectedResult, array $methods): void
{
- $data = [];
- $this->assertIsBool($this->subject->validateAddress($data));
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->validate());
}
}
diff --git a/tests/unit/Mage/Directory/Block/DataTest.php b/tests/unit/Mage/Directory/Block/DataTest.php
index efa0f9999b5..9f8ef1eb1aa 100644
--- a/tests/unit/Mage/Directory/Block/DataTest.php
+++ b/tests/unit/Mage/Directory/Block/DataTest.php
@@ -21,33 +21,31 @@
use Mage_Directory_Block_Data as Subject;
use Mage_Directory_Model_Resource_Country_Collection;
use Mage_Directory_Model_Resource_Region_Collection;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Block
+ * @group Block
*/
public function testGetCountryCollection(): void
{
- $this->assertInstanceOf(Mage_Directory_Model_Resource_Country_Collection::class, $this->subject->getCountryCollection());
+ static::assertInstanceOf(Mage_Directory_Model_Resource_Country_Collection::class, self::$subject->getCountryCollection());
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Block
+ * @group Block
*/
public function testGetRegionCollection(): void
{
- $this->assertInstanceOf(Mage_Directory_Model_Resource_Region_Collection::class, $this->subject->getRegionCollection());
+ static::assertInstanceOf(Mage_Directory_Model_Resource_Region_Collection::class, self::$subject->getRegionCollection());
}
}
diff --git a/tests/unit/Mage/Directory/Helper/DataTest.php b/tests/unit/Mage/Directory/Helper/DataTest.php
index e638168617e..106fbd172fa 100644
--- a/tests/unit/Mage/Directory/Helper/DataTest.php
+++ b/tests/unit/Mage/Directory/Helper/DataTest.php
@@ -17,157 +17,108 @@
namespace OpenMage\Tests\Unit\Mage\Directory\Helper;
-use Generator;
use Mage;
use Mage_Directory_Helper_Data as Subject;
use Mage_Directory_Model_Resource_Country_Collection;
use Mage_Directory_Model_Resource_Region_Collection;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Directory\DirectoryTrait;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ use DirectoryTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('directory/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('directory/data');
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testGetRegionCollection(): void
{
- $this->assertInstanceOf(Mage_Directory_Model_Resource_Region_Collection::class, $this->subject->getRegionCollection());
+ static::assertInstanceOf(Mage_Directory_Model_Resource_Region_Collection::class, self::$subject->getRegionCollection());
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testGetCountryCollection(): void
{
- $this->assertInstanceOf(Mage_Directory_Model_Resource_Country_Collection::class, $this->subject->getCountryCollection());
+ static::assertInstanceOf(Mage_Directory_Model_Resource_Country_Collection::class, self::$subject->getCountryCollection());
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testGetRegionJsonByStore(): void
{
- $this->assertIsString($this->subject->getRegionJson());
+ static::assertIsString(self::$subject->getRegionJson());
}
/**
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testCurrencyConvert(): void
{
- $this->assertSame(10, $this->subject->currencyConvert(10, 'USD'));
+ static::assertSame(10, self::$subject->currencyConvert(10, 'USD'));
}
/**
* @covers Mage_Directory_Helper_Data::getCountriesWithOptionalZip()
* @dataProvider provideGetCountriesWithOptionalZip
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
- public function testGetCountriesWithOptionalZip($expectedResult, bool $asJson): void
- {
- $this->assertSame($expectedResult, $this->subject->getCountriesWithOptionalZip($asJson));
- }
-
- public function provideGetCountriesWithOptionalZip(): Generator
+ public function testGetCountriesWithOptionalZip(array|string $expectedResult, bool $asJson): void
{
- yield 'as json' => [
- '["HK","IE","MO","PA"]',
- true,
- ];
- yield 'as array' => [
- [
- 0 => 'HK',
- 1 => 'IE',
- 2 => 'MO',
- 3 => 'PA',
- ],
- false,
- ];
+ static::assertSame($expectedResult, self::$subject->getCountriesWithOptionalZip($asJson));
}
/**
* @covers Mage_Directory_Helper_Data::isZipCodeOptional()
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testIsZipCodeOptional(): void
{
- $this->assertIsBool($this->subject->isZipCodeOptional(''));
+ static::assertIsBool(self::$subject->isZipCodeOptional(''));
}
/**
* @covers Mage_Directory_Helper_Data::getCountriesWithStatesRequired()
* @dataProvider provideGetCountriesWithStatesRequired
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
- public function testGetCountriesWithStatesRequired($expectedResult, bool $asJson): void
+ public function testGetCountriesWithStatesRequired(array|string $expectedResult, bool $asJson): void
{
- $result = $this->subject->getCountriesWithStatesRequired($asJson);
+ $result = self::$subject->getCountriesWithStatesRequired($asJson);
if (defined('DATA_MAY_CHANGED')) {
- $asJson ? $this->assertIsString($result) : $this->assertIsArray($result);
+ $asJson ? static::assertIsString($result) : static::assertIsArray($result);
} else {
- $this->assertSame($expectedResult, $result);
+ static::assertSame($expectedResult, $result);
}
}
- public function provideGetCountriesWithStatesRequired(): Generator
- {
- yield 'as json' => [
- '["AT","CA","CH","DE","EE","ES","FI","FR","LT","LV","RO","US"]',
- true,
- ];
- yield 'as array' => [
- [
- 0 => 'AT',
- 1 => 'CA',
- 2 => 'CH',
- 3 => 'DE',
- 4 => 'EE',
- 5 => 'ES',
- 6 => 'FI',
- 7 => 'FR',
- 8 => 'LT',
- 9 => 'LV',
- 10 => 'RO',
- 11 => 'US',
- ],
- false,
- ];
- }
-
/**
* @covers Mage_Directory_Helper_Data::getShowNonRequiredState()
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testGetShowNonRequiredState(): void
{
- $this->assertTrue($this->subject->getShowNonRequiredState());
+ static::assertTrue(self::$subject->getShowNonRequiredState());
}
/**
* @covers Mage_Directory_Helper_Data::getConfigCurrencyBase()
- * @group Mage_Directory
- * @group Mage_Directory_Helper
+ * @group Helper
*/
public function testGetConfigCurrencyBase(): void
{
- $this->assertSame('USD', $this->subject->getConfigCurrencyBase());
+ static::assertSame('USD', self::$subject->getConfigCurrencyBase());
}
}
diff --git a/tests/unit/Mage/Downloadable/Helper/FileTest.php b/tests/unit/Mage/Downloadable/Helper/FileTest.php
index 1ae59909153..3fdec8aef63 100644
--- a/tests/unit/Mage/Downloadable/Helper/FileTest.php
+++ b/tests/unit/Mage/Downloadable/Helper/FileTest.php
@@ -20,29 +20,28 @@
use Mage;
use Mage_Downloadable_Helper_File as Subject;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Downloadable\DownloadableTrait;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class FileTest extends TestCase
+class FileTest extends OpenMageTest
{
use DownloadableTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('downloadable/file');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('downloadable/file');
}
/**
* @dataProvider provideGetFilePathData
*
- * @group Mage_Downloadable
- * @group Mage_Downloadable_Helper
+ * @group Helper
*/
public function testGetFilePath(string $expectedResult, string $path, ?string $file): void
{
- $result = $this->subject->getFilePath($path, $file);
- $this->assertSame($expectedResult, $result);
+ $result = self::$subject->getFilePath($path, $file);
+ static::assertSame($expectedResult, $result);
}
}
diff --git a/tests/unit/Mage/GiftMessage/Helper/MessageTest.php b/tests/unit/Mage/GiftMessage/Helper/MessageTest.php
index 67d5c3eee90..6cf83612015 100644
--- a/tests/unit/Mage/GiftMessage/Helper/MessageTest.php
+++ b/tests/unit/Mage/GiftMessage/Helper/MessageTest.php
@@ -17,61 +17,32 @@
namespace OpenMage\Tests\Unit\Mage\GiftMessage\Helper;
-use Generator;
use Mage;
-use Mage_Catalog_Model_Product;
+use Mage_Core_Model_Store;
use Mage_GiftMessage_Helper_Message as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\GiftMessage\GiftMessageTrait;
use Varien_Object;
-class MessageTest extends TestCase
+class MessageTest extends OpenMageTest
{
- public Subject $subject;
+ use GiftMessageTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('giftmessage/message');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('giftmessage/message');
}
/**
* @dataProvider provideIsMessagesAvailable
*
- * @group Mage_GiftMessage
- * @group Mage_GiftMessage_Helper
+ * @group Helper
*/
- public function testIsMessagesAvailable(string $type, Varien_Object $entity, $store = null): void
+ public function testIsMessagesAvailable(string $type, Varien_Object $entity, bool|int|Mage_Core_Model_Store|null|string $store = null): void
{
- $this->assertIsBool($this->subject->isMessagesAvailable($type, $entity, $store));
- }
-
- public function provideIsMessagesAvailable(): Generator
- {
- $entity = new Varien_Object();
-
- yield Subject::TYPE_ADDRESS_ITEM => [
- Subject::TYPE_ADDRESS_ITEM,
- $entity,
- ];
- yield Subject::TYPE_ITEM => [
- Subject::TYPE_ITEM,
- $entity->setProduct(new Mage_Catalog_Model_Product()),
- ];
- yield Subject::TYPE_ITEMS => [
- Subject::TYPE_ITEMS,
- $entity,
- ];
- yield Subject::TYPE_ORDER => [
- Subject::TYPE_ORDER,
- $entity,
- ];
- yield Subject::TYPE_ORDER_ITEM => [
- Subject::TYPE_ORDER_ITEM,
- $entity,
- ];
- yield 'invalid type' => [
- 'quote',
- $entity,
- ];
+ static::assertIsBool(self::$subject->isMessagesAvailable($type, $entity, $store));
}
}
diff --git a/tests/unit/Mage/Index/Block/Adminhtml/Process/GridTest.php b/tests/unit/Mage/Index/Block/Adminhtml/Process/GridTest.php
new file mode 100644
index 00000000000..80c7c14d2bf
--- /dev/null
+++ b/tests/unit/Mage/Index/Block/Adminhtml/Process/GridTest.php
@@ -0,0 +1,73 @@
+setStatus($data);
+
+ $expectedResult = sprintf(self::$subject::PATTERN_SEVERITY, $expectedResult, $value);
+ static::assertSame($expectedResult, self::$subject->decorateStatus($value, $row, $column, $isExpected));
+ }
+
+ /**
+ * @covers Mage_Index_Block_Adminhtml_Process_Grid::decorateUpdateRequired()
+ * @dataProvider provideDecorateUpdateRequiredData
+ * @group Model
+ */
+ public function testDecorateUpdateRequired(string $expectedResult, int $data): void
+ {
+ $value = '1';
+ $row = new Mage_Index_Model_Process();
+ $column = new Mage_Adminhtml_Block_Widget_Grid_Column();
+ $isExpected = false;
+
+ $row->setUpdateRequired($data);
+
+ $expectedResult = sprintf(self::$subject::PATTERN_SEVERITY, $expectedResult, $value);
+ static::assertSame($expectedResult, self::$subject->decorateUpdateRequired($value, $row, $column, $isExpected));
+ }
+}
diff --git a/tests/unit/Mage/Index/Model/IndexerTest.php b/tests/unit/Mage/Index/Model/IndexerTest.php
new file mode 100644
index 00000000000..0d32e5aa775
--- /dev/null
+++ b/tests/unit/Mage/Index/Model/IndexerTest.php
@@ -0,0 +1,116 @@
+getProcessesCollection());
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::hasErrors()
+ * @group Model
+ */
+ public function testHasErrors(): void
+ {
+ static::assertIsBool(self::$subject->hasErrors());
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::getErrors()
+ * @group Model
+ */
+ public function testGetErrors(): void
+ {
+ static::assertIsArray(self::$subject->getErrors());
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::lockIndexer()
+ * @group Model
+ */
+ public function testLockIndexer(): void
+ {
+ static::assertInstanceOf(Subject::class, self::$subject->lockIndexer());
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::unlockIndexer()
+ * @group Model
+ */
+ public function testUnlockIndexer(): void
+ {
+ static::assertInstanceOf(Subject::class, self::$subject->unlockIndexer());
+ }
+
+ /**
+ * @group Model
+ */
+ public function testIndexEvent(): void
+ {
+ $event = new Mage_Index_Model_Event();
+ static::assertInstanceOf(Subject::class, self::$subject->indexEvent($event));
+ }
+
+ /**
+ * @group Model
+ */
+ public function testRegisterEvent(): void
+ {
+ $event = new Mage_Index_Model_Event();
+ static::assertInstanceOf(Subject::class, self::$subject->registerEvent($event));
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::allowTableChanges()
+ * @group Model
+ */
+ public function testAllowTableChanges(): void
+ {
+ static::assertInstanceOf(Subject::class, self::$subject->allowTableChanges());
+ }
+
+ /**
+ * @covers Mage_Index_Model_Indexer::disallowTableChanges()
+ * @group Model
+ */
+ public function testDisallowTableChanges(): void
+ {
+ static::assertInstanceOf(Subject::class, self::$subject->disallowTableChanges());
+ }
+}
diff --git a/tests/unit/Mage/Index/Model/ProcessTest.php b/tests/unit/Mage/Index/Model/ProcessTest.php
index 874eeb06b25..239841545be 100644
--- a/tests/unit/Mage/Index/Model/ProcessTest.php
+++ b/tests/unit/Mage/Index/Model/ProcessTest.php
@@ -21,73 +21,69 @@
use Mage_Core_Exception;
use Mage_Index_Model_Process as Subject;
use Mage_Index_Model_Resource_Event_Collection;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ProcessTest extends TestCase
+class ProcessTest extends OpenMageTest
{
public const INDEXER_MODEL_IS_NOT_DEFINED = 'Indexer model is not defined.';
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('index/process');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('index/process');
}
/**
- * @group Mage_Index
- * @group Mage_Index_Model
+ * @group Model
*/
public function testReindexEverything(): void
{
- $this->subject->setIndexerCode('html');
+ self::$subject->setIndexerCode('html');
try {
- $this->assertInstanceOf(Subject::class, $this->subject->reindexEverything());
+ static::assertInstanceOf(Subject::class, self::$subject->reindexEverything());
} catch (Mage_Core_Exception $exception) {
- $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
+ static::assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
}
}
/**
- * @group Mage_Index
- * @group Mage_Index_Model
+ * @group Model
*/
public function testDisableIndexerKeys(): void
{
- $this->subject->setIndexerCode('html');
+ self::$subject->setIndexerCode('html');
try {
- $this->assertInstanceOf(Subject::class, $this->subject->disableIndexerKeys());
+ static::assertInstanceOf(Subject::class, self::$subject->disableIndexerKeys());
} catch (Mage_Core_Exception $exception) {
- $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
+ static::assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
}
}
/**
- * @group Mage_Index
- * @group Mage_Index_Model
+ * @group Model
*/
public function testEnableIndexerKeys(): void
{
- $this->subject->setIndexerCode('html');
+ self::$subject->setIndexerCode('html');
try {
- $this->assertInstanceOf(Subject::class, $this->subject->enableIndexerKeys());
+ static::assertInstanceOf(Subject::class, self::$subject->enableIndexerKeys());
} catch (Mage_Core_Exception $exception) {
- $this->assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
+ static::assertSame(self::INDEXER_MODEL_IS_NOT_DEFINED, $exception->getMessage());
}
}
/**
- * @group Mage_Index
- * @group Mage_Index_Model
+ * @group Model
*/
public function testGetUnprocessedEventsCollection(): void
{
- $this->subject->setIndexerCode('html');
- $this->assertInstanceOf(Mage_Index_Model_Resource_Event_Collection::class, $this->subject->getUnprocessedEventsCollection());
+ self::$subject->setIndexerCode('html');
+ static::assertInstanceOf(Mage_Index_Model_Resource_Event_Collection::class, self::$subject->getUnprocessedEventsCollection());
}
}
diff --git a/tests/unit/Mage/Log/Helper/DataTest.php b/tests/unit/Mage/Log/Helper/DataTest.php
index 0787cd757c1..4afbb7ef041 100644
--- a/tests/unit/Mage/Log/Helper/DataTest.php
+++ b/tests/unit/Mage/Log/Helper/DataTest.php
@@ -17,71 +17,57 @@
namespace OpenMage\Tests\Unit\Mage\Log\Helper;
-use Generator;
use Mage;
use Mage_Log_Helper_Data as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Log\Helper\DataTrait;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ use DataTrait;
- public function setUp(): void
+ private static Subject $subject;
+
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('log/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('log/data');
}
/**
* @covers Mage_Log_Helper_Data::isVisitorLogEnabled()
- * @group Mage_Log
- * @group Mage_Log_Helper
+ * @group Helper
*/
public function testIsVisitorLogEnabled(): void
{
- $this->assertTrue($this->subject->isVisitorLogEnabled());
+ static::assertTrue(self::$subject->isVisitorLogEnabled());
}
/**
* @covers Mage_Log_Helper_Data::isLogEnabled()
- * @group Mage_Log
- * @group Mage_Log_Helper
+ * @group Helper
*/
public function testIsLogEnabled(): void
{
- $this->assertFalse($this->subject->isLogEnabled());
+ static::assertFalse(self::$subject->isLogEnabled());
}
/**
* @covers Mage_Log_Helper_Data::isLogDisabled()
- * @group Mage_Log
- * @group Mage_Log_Helper
+ * @group Helper
*/
public function testIsLogDisabled(): void
{
- $this->assertFalse($this->subject->isLogDisabled());
+ static::assertFalse(self::$subject->isLogDisabled());
}
/**
* @covers Mage_Log_Helper_Data::isLogFileExtensionValid()
* @dataProvider provideIsLogFileExtensionValid
- * @group Mage_Log
- * @group Mage_Log_Helper
+ * @group Helper
*/
public function testIsLogFileExtensionValid(bool $expectedResult, string $file): void
{
- $this->assertSame($expectedResult, $this->subject->isLogFileExtensionValid($file));
- }
-
- public function provideIsLogFileExtensionValid(): Generator
- {
- yield 'valid' => [
- true,
- 'valid.log',
- ];
- yield 'invalid' => [
- false,
- 'invalid.file',
- ];
+ static::assertSame($expectedResult, self::$subject->isLogFileExtensionValid($file));
}
}
diff --git a/tests/unit/Mage/Log/Model/AggregationTest.php b/tests/unit/Mage/Log/Model/AggregationTest.php
index 238233acff6..0a72daa4869 100644
--- a/tests/unit/Mage/Log/Model/AggregationTest.php
+++ b/tests/unit/Mage/Log/Model/AggregationTest.php
@@ -19,25 +19,24 @@
use Mage;
use Mage_Log_Model_Aggregation as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class AggregationTest extends TestCase
+class AggregationTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('log/aggregation');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('log/aggregation');
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @doesNotPerformAssertions
*/
public function testRun(): void
{
- $this->subject->run();
+ self::$subject->run();
}
}
diff --git a/tests/unit/Mage/Log/Model/CronTest.php b/tests/unit/Mage/Log/Model/CronTest.php
index fa8433f37fd..9cf15664db4 100644
--- a/tests/unit/Mage/Log/Model/CronTest.php
+++ b/tests/unit/Mage/Log/Model/CronTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Log_Model_Cron as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class CronTest extends TestCase
+class CronTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('log/cron');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('log/cron');
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
*/
public function testLogClean(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->logClean());
+ static::assertInstanceOf(Subject::class, self::$subject->logClean());
}
}
diff --git a/tests/unit/Mage/Log/Model/CustomerTest.php b/tests/unit/Mage/Log/Model/CustomerTest.php
index ffd035ef148..8766a0919ab 100644
--- a/tests/unit/Mage/Log/Model/CustomerTest.php
+++ b/tests/unit/Mage/Log/Model/CustomerTest.php
@@ -17,33 +17,67 @@
namespace OpenMage\Tests\Unit\Mage\Log\Model;
+use Generator;
use Mage;
+use Mage_Customer_Model_Customer;
use Mage_Log_Model_Customer as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Log\Model\CustomerTrait;
-class CustomerTest extends TestCase
+class CustomerTest extends OpenMageTest
{
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = Mage::getModel('log/customer');
- }
+ use CustomerTrait;
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @dataProvider loadByCustomerDataProvider
+ * @group Model
*/
- public function testGetLoginAtTimestamp(): void
+ public function testLoadByCustomer($input, $expectedCustomerId): void
{
$mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getLoginAt'])
+ ->onlyMethods(['load'])
->getMock();
- $this->assertNull($mock->getLoginAtTimestamp());
+ $mock->expects(static::once())
+ ->method('load')
+ ->with($expectedCustomerId, 'customer_id')
+ ->willReturnSelf();
+
+ $result = $mock->loadByCustomer($input);
+
+ static::assertSame($mock, $result);
+ }
+
+ public function loadByCustomerDataProvider(): Generator
+ {
+ $customerMock = $this->getMockBuilder(Mage_Customer_Model_Customer::class)
+ ->onlyMethods(['getId'])
+ ->getMock();
+ $customerMock->method('getId')->willReturn(456);
+
+ yield 'int' => [
+ 123,
+ 123,
+ ];
+ yield 'model' => [
+ $customerMock,
+ 456,
+ ];
+ }
+
+ /**
+ * @dataProvider provideGetLoginAtTimestampData
+ * @group Model
+ */
+ public function testGetLoginAtTimestamp(bool $expectedResult, array $methods): void
+ {
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getLoginAt')->willReturn(true);
- $this->assertIsInt($mock->getLoginAtTimestamp());
+ static::assertInstanceOf(Subject::class, $mock);
+ if ($expectedResult) {
+ static::assertIsInt($mock->getLoginAtTimestamp());
+ } else {
+ static::assertNull($mock->getLoginAtTimestamp());
+ }
}
}
diff --git a/tests/unit/Mage/Log/Model/LogTest.php b/tests/unit/Mage/Log/Model/LogTest.php
index 0cb17c2820a..df147bcb4ea 100644
--- a/tests/unit/Mage/Log/Model/LogTest.php
+++ b/tests/unit/Mage/Log/Model/LogTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Log_Model_Log as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class LogTest extends TestCase
+class LogTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('log/log');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('log/log');
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
*/
public function testClean(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->clean());
+ static::assertInstanceOf(Subject::class, self::$subject->clean());
}
}
diff --git a/tests/unit/Mage/Log/Model/VisitorTest.php b/tests/unit/Mage/Log/Model/VisitorTest.php
index 528d1f2d543..bcd3874d5e9 100644
--- a/tests/unit/Mage/Log/Model/VisitorTest.php
+++ b/tests/unit/Mage/Log/Model/VisitorTest.php
@@ -19,70 +19,64 @@
use Mage;
use Mage_Log_Model_Visitor as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class VisitorTest extends TestCase
+class VisitorTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = Mage::getModel('log/visitor');
+ self::$subject = Mage::getModel('log/visitor');
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testInitServerData(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->initServerData());
+ static::assertInstanceOf(Subject::class, self::$subject->initServerData());
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetOnlineMinutesInterval(): void
{
- $this->assertIsInt($this->subject->getOnlineMinutesInterval());
+ static::assertIsInt(self::$subject->getOnlineMinutesInterval());
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetUrl(): void
{
- $this->assertIsString($this->subject->getUrl());
+ static::assertIsString(self::$subject->getUrl());
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetFirstVisitAt(): void
{
- $this->assertIsString($this->subject->getFirstVisitAt());
+ static::assertIsString(self::$subject->getFirstVisitAt());
}
/**
- * @group Mage_Log
- * @group Mage_Log_Model
+ * @group Model
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetLastVisitAt(): void
{
- $this->assertIsString($this->subject->getLastVisitAt());
+ static::assertIsString(self::$subject->getLastVisitAt());
}
}
diff --git a/tests/unit/Mage/Newsletter/Model/TemplateTest.php b/tests/unit/Mage/Newsletter/Model/TemplateTest.php
new file mode 100644
index 00000000000..7a1ef7c047d
--- /dev/null
+++ b/tests/unit/Mage/Newsletter/Model/TemplateTest.php
@@ -0,0 +1,147 @@
+setTemplateCode($methods['setTemplateCode']);
+ self::$subject->setTemplateSenderEmail($methods['setTemplateSenderEmail']);
+ self::$subject->setTemplateSenderName($methods['setTemplateSenderName']);
+ self::$subject->setTemplateSubject($methods['setTemplateSubject']);
+ self::$subject->setTemplateText($methods['setTemplateText']);
+ self::$subject->setTemplateType($methods['setTemplateType']);
+
+ if ($expected) {
+ $this->expectException(Mage_Core_Exception::class);
+ $this->expectExceptionMessage($expected);
+ } else {
+ $this->expectNotToPerformAssertions();
+ }
+
+ self::$subject->validate();
+ }
+
+ public function validateTemplateDataProvider(): Generator
+ {
+ $validData = [
+ 'setTemplateCode' => 'Valid Code',
+ 'setTemplateSenderEmail' => 'test@example.com',
+ 'setTemplateSenderName' => 'Sender Name',
+ 'setTemplateSubject' => 'Valid Subject',
+ 'setTemplateText' => 'Valid Template Text',
+ 'setTemplateType' => 1,
+ ];
+
+ yield 'valid data' => [
+ null,
+ $validData,
+ ];
+
+ $data = $validData;
+ $data['setTemplateCode'] = null;
+ yield 'missing template code' => [
+ 'You must give a non-empty value for field \'template_code\'',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateSenderEmail'] = null;
+ yield 'missing sender email' => [
+ 'You must give a non-empty value for field \'template_sender_email\'',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateSenderEmail'] = 'invalid-email';
+ yield 'invalid sender email' => [
+ '\'invalid-email\' is not a valid email address in the basic format local-part@hostname',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateSenderName'] = null;
+ yield 'missing sender name' => [
+ 'You must give a non-empty value for field \'template_sender_name\'',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateSubject'] = null;
+ yield 'missing template subject' => [
+ null,
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateText'] = null;
+ yield 'missing template text' => [
+ null,
+ $data,
+ ];
+
+ $data = $validData;
+ $data['setTemplateType'] = null;
+ yield 'missing template type' => [
+ 'You must give a non-empty value for field \'template_type\'',
+ $data,
+ ];
+ }
+
+ /**
+ * @group Model
+ */
+ public function testLoadByCode(): void
+ {
+ static::assertInstanceOf(Subject::class, self::$subject->loadByCode('test_code'));
+ }
+
+ /**
+ * @group Model
+ */
+ public function testIsValidForSend(): void
+ {
+ static::assertIsBool(self::$subject->isValidForSend());
+ }
+
+ /**
+ * @group Model
+ */
+ public function testGetProcessedTemplate(): void
+ {
+ static::assertIsString(self::$subject->getProcessedTemplate(['key' => 'value']));
+ }
+}
diff --git a/tests/unit/Mage/Page/Block/Html/HeadTest.php b/tests/unit/Mage/Page/Block/Html/HeadTest.php
index 96d1cfedba5..88e022592e6 100644
--- a/tests/unit/Mage/Page/Block/Html/HeadTest.php
+++ b/tests/unit/Mage/Page/Block/Html/HeadTest.php
@@ -19,60 +19,55 @@
use Mage;
use Mage_Page_Block_Html_Head as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class HeadTest extends TestCase
+class HeadTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testAddCss(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addCss('test'));
+ static::assertInstanceOf(Subject::class, self::$subject->addCss('test'));
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testAddJs(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addJs('test'));
+ static::assertInstanceOf(Subject::class, self::$subject->addJs('test'));
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testAddCssIe(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addCssIe('test'));
+ static::assertInstanceOf(Subject::class, self::$subject->addCssIe('test'));
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testAddJsIe(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addJsIe('test'));
+ static::assertInstanceOf(Subject::class, self::$subject->addJsIe('test'));
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testAddLinkRel(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->addLinkRel('test', 'ref'));
+ static::assertInstanceOf(Subject::class, self::$subject->addLinkRel('test', 'ref'));
}
}
diff --git a/tests/unit/Mage/Page/Block/Html/HeaderTest.php b/tests/unit/Mage/Page/Block/Html/HeaderTest.php
index 06c0fcae93a..881f181b1e3 100644
--- a/tests/unit/Mage/Page/Block/Html/HeaderTest.php
+++ b/tests/unit/Mage/Page/Block/Html/HeaderTest.php
@@ -20,60 +20,54 @@
use Mage;
use Mage_Core_Model_Security_HtmlEscapedString;
use Mage_Page_Block_Html_Header as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class HeaderTest extends TestCase
+class HeaderTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = new Subject();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
// public function testGetIsHomePage(): void
// {
- // $this->assertIsBool($this->subject->getIsHomePage());
+ // $this->assertIsBool(self::$subject->getIsHomePage());
// }
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testSetLogo(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setLogo('src', 'alt'));
+ static::assertInstanceOf(Subject::class, self::$subject->setLogo('src', 'alt'));
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetLogoSrc(): void
{
- $this->assertIsString($this->subject->getLogoSrc());
+ static::assertIsString(self::$subject->getLogoSrc());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetLogoSrcSmall(): void
{
- $this->assertIsString($this->subject->getLogoSrcSmall());
+ static::assertIsString(self::$subject->getLogoSrcSmall());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetLogoAlt(): void
{
- $this->assertInstanceOf(Mage_Core_Model_Security_HtmlEscapedString::class, $this->subject->getLogoAlt());
+ static::assertInstanceOf(Mage_Core_Model_Security_HtmlEscapedString::class, self::$subject->getLogoAlt());
}
}
diff --git a/tests/unit/Mage/Page/Block/HtmlTest.php b/tests/unit/Mage/Page/Block/HtmlTest.php
index e3ea305fd4e..8dd7401a9a9 100644
--- a/tests/unit/Mage/Page/Block/HtmlTest.php
+++ b/tests/unit/Mage/Page/Block/HtmlTest.php
@@ -19,51 +19,47 @@
use Mage;
use Mage_Page_Block_Html as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class HtmlTest extends TestCase
+class HtmlTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetBaseUrl(): void
{
- $this->assertIsString($this->subject->getBaseUrl());
+ static::assertIsString(self::$subject->getBaseUrl());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetBaseSecureUrl(): void
{
- $this->assertIsString($this->subject->getBaseSecureUrl());
+ static::assertIsString(self::$subject->getBaseSecureUrl());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
// public function testGetCurrentUrl(): void
// {
- // $this->assertIsString($this->subject->getCurrentUrl());
+ // $this->assertIsString(self::$subject->getCurrentUrl());
// }
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetPrintLogoUrl(): void
{
- $this->assertIsString($this->subject->getPrintLogoUrl());
+ static::assertIsString(self::$subject->getPrintLogoUrl());
}
}
diff --git a/tests/unit/Mage/Page/Block/RedirectTest.php b/tests/unit/Mage/Page/Block/RedirectTest.php
index 474121bbda1..08ae089091c 100644
--- a/tests/unit/Mage/Page/Block/RedirectTest.php
+++ b/tests/unit/Mage/Page/Block/RedirectTest.php
@@ -17,89 +17,80 @@
namespace OpenMage\Tests\Unit\Mage\Page\Block;
-use Mage;
use Mage_Page_Block_Redirect as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class RedirectTest extends TestCase
+class RedirectTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetTargetUrl(): void
{
- $this->assertSame('', $this->subject->getTargetURL());
+ static::assertSame('', self::$subject->getTargetURL());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetMessage(): void
{
- $this->assertSame('', $this->subject->getMessage());
+ static::assertSame('', self::$subject->getMessage());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetRedirectOutput(): void
{
- $this->assertIsString($this->subject->getRedirectOutput());
+ static::assertIsString(self::$subject->getRedirectOutput());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetJsRedirect(): void
{
- $this->assertIsString($this->subject->getJsRedirect());
+ static::assertIsString(self::$subject->getJsRedirect());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetHtmlFormRedirect(): void
{
- $this->assertIsString($this->subject->getHtmlFormRedirect());
+ static::assertIsString(self::$subject->getHtmlFormRedirect());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testIsHtmlFormRedirect(): void
{
- $this->assertIsBool($this->subject->isHtmlFormRedirect());
+ static::assertIsBool(self::$subject->isHtmlFormRedirect());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetFormId(): void
{
- $this->assertSame('', $this->subject->getFormId());
+ static::assertSame('', self::$subject->getFormId());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetFormMethod(): void
{
- $this->assertSame('POST', $this->subject->getFormMethod());
+ static::assertSame('POST', self::$subject->getFormMethod());
}
}
diff --git a/tests/unit/Mage/Page/Block/SwitchTest.php b/tests/unit/Mage/Page/Block/SwitchTest.php
index 37c271d5acb..973148e2d6a 100644
--- a/tests/unit/Mage/Page/Block/SwitchTest.php
+++ b/tests/unit/Mage/Page/Block/SwitchTest.php
@@ -19,96 +19,87 @@
use Mage;
use Mage_Page_Block_Switch as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class SwitchTest extends TestCase
+class SwitchTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetCurrentWebsiteId(): void
{
- $this->assertIsInt($this->subject->getCurrentWebsiteId());
+ static::assertIsInt(self::$subject->getCurrentWebsiteId());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetCurrentGroupId(): void
{
- $this->assertIsInt($this->subject->getCurrentGroupId());
+ static::assertIsInt(self::$subject->getCurrentGroupId());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetCurrentStoreId(): void
{
- $this->assertIsInt($this->subject->getCurrentStoreId());
+ static::assertIsInt(self::$subject->getCurrentStoreId());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetCurrentStoreCode(): void
{
- $this->assertIsString($this->subject->getCurrentStoreCode());
+ static::assertIsString(self::$subject->getCurrentStoreCode());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testGetRawGroups(): void
{
- $this->assertIsArray($this->subject->getRawGroups());
+ static::assertIsArray(self::$subject->getRawGroups());
}
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
// public function testGetRawStores(): void
// {
- // $this->assertIsArray($this->subject->getRawStores());
+ // $this->assertIsArray(self::$subject->getRawStores());
// }
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
// public function testGetGroups(): void
// {
- // $this->assertIsArray($this->subject->getGroups());
+ // $this->assertIsArray(self::$subject->getGroups());
// }
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
// public function testGetStores(): void
// {
- // $this->assertIsArray($this->subject->getStores());
+ // $this->assertIsArray(self::$subject->getStores());
// }
/**
- * @group Mage_Page
- * @group Mage_Page_Block
+ * @group Block
*/
public function testIsStoreInUrl(): void
{
- $this->assertIsBool($this->subject->isStoreInUrl());
+ static::assertIsBool(self::$subject->isStoreInUrl());
}
}
diff --git a/tests/unit/Mage/Page/Helper/LayoutTest.php b/tests/unit/Mage/Page/Helper/LayoutTest.php
index 454d39b2b10..b57035f2e69 100644
--- a/tests/unit/Mage/Page/Helper/LayoutTest.php
+++ b/tests/unit/Mage/Page/Helper/LayoutTest.php
@@ -19,25 +19,24 @@
use Mage;
use Mage_Page_Helper_Layout as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class LayoutTest extends TestCase
+class LayoutTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('page/layout');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('page/layout');
}
/**
* @covers Mage_Core_Helper_Abstract::isModuleEnabled()
- * @group Mage_Page
- * @group Mage_Page_Helper
+ * @group Helper
*/
public function testApplyTemplate(): void
{
- $this->assertTrue($this->subject->isModuleEnabled());
+ static::assertTrue(self::$subject->isModuleEnabled());
}
}
diff --git a/tests/unit/Mage/Page/Model/ConfigTest.php b/tests/unit/Mage/Page/Model/ConfigTest.php
index 3405e1fd507..8126a9f3441 100644
--- a/tests/unit/Mage/Page/Model/ConfigTest.php
+++ b/tests/unit/Mage/Page/Model/ConfigTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Page_Model_Config as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class ConfigTest extends TestCase
+class ConfigTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('page/config');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('page/config');
}
/**
- * @group Mage_Page
- * @group Mage_Page_Model
+ * @group Model
*/
public function testGetPageLayoutHandles(): void
{
- $this->assertIsArray($this->subject->getPageLayoutHandles());
+ static::assertIsArray(self::$subject->getPageLayoutHandles());
}
}
diff --git a/tests/unit/Mage/Page/Model/Source/LayoutTest.php b/tests/unit/Mage/Page/Model/Source/LayoutTest.php
index cb244aae8e0..02310888646 100644
--- a/tests/unit/Mage/Page/Model/Source/LayoutTest.php
+++ b/tests/unit/Mage/Page/Model/Source/LayoutTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Page_Model_Source_Layout as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class LayoutTest extends TestCase
+class LayoutTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::getModel('page/source_layout');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('page/source_layout');
}
/**
- * @group Mage_Page
- * @group Mage_Page_Model
+ * @group Model
*/
public function testToOptionArray(): void
{
- $this->assertIsArray($this->subject->toOptionArray(true));
+ static::assertIsArray(self::$subject->toOptionArray(true));
}
}
diff --git a/tests/unit/Mage/Reports/Helper/DataTest.php b/tests/unit/Mage/Reports/Helper/DataTest.php
index 6407fab46bb..2848ba24444 100644
--- a/tests/unit/Mage/Reports/Helper/DataTest.php
+++ b/tests/unit/Mage/Reports/Helper/DataTest.php
@@ -1,16 +1,9 @@
subject = Mage::helper('reports/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('reports/data');
}
/**
* @covers Mage_Core_Helper_Abstract::isModuleEnabled()
- * @group Mage_Reports
- * @group Mage_Reports_Helper
+ * @group Helper
*/
public function testIsModuleEnabled(): void
{
- $this->assertTrue($this->subject->isModuleEnabled());
+ static::assertTrue(self::$subject->isModuleEnabled());
}
/**
* @covers Mage_Reports_Helper_Data::isReportsEnabled()
- * @group Mage_Reports
- * @group Mage_Reports_Helper
+ * @group Helper
*/
public function testIsReportsEnabled(): void
{
- $this->assertTrue($this->subject->isReportsEnabled());
+ static::assertTrue(self::$subject->isReportsEnabled());
}
/**
* @covers Mage_Reports_Helper_Data::getIntervals()
* @dataProvider provideReportsDateIntervals
- * @group Mage_Reports
- * @group Mage_Reports_Helper
+ * @group Helper
*/
- public function testGetIntervals($expectedResult, $from, $to, $period): void
+ public function testGetIntervals(int|string $expectedResult, string $from, string $to, string $period): void
{
if (PHP_VERSION_ID >= 80300 && version_compare(InstalledVersions::getPrettyVersion('shardj/zf1-future'), '1.24.2', '<=')) {
- $this->markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465');
+ static::markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465');
}
try {
- $this->assertCount($expectedResult, $this->subject->getIntervals($from, $to, $period));
+ static::assertCount($expectedResult, self::$subject->getIntervals($from, $to, $period));
} catch (Zend_Date_Exception $exception) {
- $this->assertSame("No date part in '' found.", $exception->getMessage());
+ static::assertSame("No date part in '' found.", $exception->getMessage());
}
}
/**
* @covers Mage_Reports_Helper_Data::prepareIntervalsCollection()
* @dataProvider provideReportsDateIntervals
- * @doesNotPerformAssertions
- * @group Mage_Reports
- * @group Mage_Reports_Helper
+ * @group Helper
*/
- public function testPrepareIntervalsCollection($expectedResult, $from, $to, $period): void
+ public function testPrepareIntervalsCollection(int|string $expectedResult, string $from, string $to, string $period): void
{
- $this->markTestIncomplete('Test needs to be reviewed.');
- // @phpstan-ignore-next-line
- $this->subject->prepareIntervalsCollection(new Varien_Data_Collection(), $from, $to, $period);
+ $collection = new Varien_Data_Collection();
+
+ try {
+ self::$subject->prepareIntervalsCollection($collection, $from, $to, $period);
+ static::assertGreaterThanOrEqual(0, $collection->count());
+ } catch (\Zend_Date_Exception $exception) {
+ static::assertSame($expectedResult, $exception->getMessage());
+ }
}
}
diff --git a/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php b/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php
index 2d57109d708..76e7d45b44d 100644
--- a/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php
+++ b/tests/unit/Mage/Reports/Model/Resource/Report/CollectionTest.php
@@ -1,16 +1,9 @@
subject = Mage::getModel('reports/resource_report_collection');
+ self::$subject = Mage::getModel('reports/resource_report_collection');
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::setPeriod()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testSetPeriod(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setPeriod(1));
+ static::assertInstanceOf(Subject::class, self::$subject->setPeriod('1m'));
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::setInterval()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testSetIntervals(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setInterval(new Zend_Date(), new Zend_Date()));
+ static::assertInstanceOf(Subject::class, self::$subject->setInterval(new Zend_Date(), new Zend_Date()));
}
/**
* @dataProvider provideReportsDateIntervals
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
- public function testGetIntervals($expectedResult, $from, $to, $period): void
+ public function testGetIntervals(int|string $expectedResult, string|Zend_Date $from, string|Zend_Date $to, string $period): void
{
- $this->subject->setInterval($from, $to);
- $this->subject->setPeriod($period);
+ self::$subject->setInterval($from, $to);
+ self::$subject->setPeriod($period);
try {
- $this->assertIsArray($this->subject->getIntervals());
+ static::assertIsArray(self::$subject->getIntervals());
} catch (Zend_Date_Exception $exception) {
- $this->assertSame("No date part in '' found.", $exception->getMessage());
+ static::assertSame("No date part in '' found.", $exception->getMessage());
}
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::getPeriods()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testGetPeriods(): void
{
- $this->assertIsArray($this->subject->getPeriods());
+ static::assertIsArray(self::$subject->getPeriods());
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::getStoreIds()
* @covers Mage_Reports_Model_Resource_Report_Collection::setStoreIds()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testStoreIds(): void
{
- $this->subject->setStoreIds([]);
- $this->assertSame([], $this->subject->getStoreIds());
+ self::$subject->setStoreIds([]);
+ static::assertSame([], self::$subject->getStoreIds());
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::getSize()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testGetSize(): void
{
- $this->assertIsInt($this->subject->getSize());
+ static::assertIsInt(self::$subject->getSize());
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::setPageSize()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testSetPageSize(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setPageSize(1));
+ static::assertInstanceOf(Subject::class, self::$subject->setPageSize(1));
}
/**
* @covers Mage_Reports_Model_Resource_Report_Collection::getPageSize()
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testGetPageSize(): void
{
- $this->assertNull($this->subject->getPageSize());
+ static::assertNull(self::$subject->getPageSize());
}
/**
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
- public function testInitReport($modelClass = ''): void
+ public function testInitReport(string $modelClass = ''): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->initReport($modelClass));
+ static::assertInstanceOf(Subject::class, self::$subject->initReport($modelClass));
}
/**
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testGetReportFull(): void
{
- $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE);
- # $this->assertInstanceOf(Mage_Reports_Model_Report::class, $this->subject->getReportFull(1, 1));
+ static::markTestSkipped(self::SKIP_INCOMPLETE_MESSAGE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertInstanceOf(Mage_Reports_Model_Report::class, self::$subject->getReportFull(1, 1));
}
/**
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testGetReport(): void
{
- $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE);
- # $this->assertInstanceOf(Mage_Reports_Model_Report::class, $this->subject->getReport(1, 1));
+ static::markTestSkipped(self::SKIP_INCOMPLETE_MESSAGE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertInstanceOf(Mage_Reports_Model_Report::class, self::$subject->getReport(1, 1));
}
/**
- * @group Mage_Reports
- * @group Mage_Reports_Model
+ * @group Model
*/
public function testTimeShift(): void
{
- $this->markTestIncomplete(self::SKIP_INCOMPLETE_MESSAGE);
- # $this->assertSame($this->subject->timeShift(''));
+ static::markTestSkipped(self::SKIP_INCOMPLETE_MESSAGE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertSame(self::$subject->timeShift(''));
}
}
diff --git a/tests/unit/Mage/Review/Model/ReviewTest.php b/tests/unit/Mage/Review/Model/ReviewTest.php
new file mode 100644
index 00000000000..30eefd82914
--- /dev/null
+++ b/tests/unit/Mage/Review/Model/ReviewTest.php
@@ -0,0 +1,41 @@
+getMockWithCalledMethods(Subject::class, $methods);
+
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->validate());
+ }
+}
diff --git a/tests/unit/Mage/Rule/Model/AbstractTest.php b/tests/unit/Mage/Rule/Model/AbstractTest.php
index e2adf84cd3b..137a38ed2c1 100644
--- a/tests/unit/Mage/Rule/Model/AbstractTest.php
+++ b/tests/unit/Mage/Rule/Model/AbstractTest.php
@@ -1,16 +1,9 @@
subject = $this->getMockForAbstractClass(Subject::class);
+ self::$subject = $this->getMockForAbstractClass(Subject::class);
}
/**
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetProductFlatSelect(): void
{
try {
- $this->assertInstanceOf(Varien_Db_Select::class, $this->subject->getProductFlatSelect(0));
+ static::assertInstanceOf(Varien_Db_Select::class, self::$subject->getProductFlatSelect(0));
} catch (Mage_Core_Exception $exception) {
- $this->assertSame('Resource is not set.', $exception->getMessage());
+ static::assertSame('Resource is not set.', $exception->getMessage());
}
}
/**
* @dataProvider provideBool
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetConditions(bool $empty): void
{
if (!$empty) {
- $this->subject->setConditions(new Mage_Rule_Model_Condition_Combine());
+ self::$subject->setConditions(new Mage_Rule_Model_Condition_Combine());
}
try {
- $this->assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, $this->subject->getConditions());
+ static::assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, self::$subject->getConditions());
} catch (Error $error) {
- $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
+ static::assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
}
}
/**
* @dataProvider provideBool
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetActions(bool $empty): void
{
if (!$empty) {
- $this->subject->setActions(new Mage_Rule_Model_Action_Collection());
+ self::$subject->setActions(new Mage_Rule_Model_Action_Collection());
}
try {
- $this->assertInstanceOf(Mage_Rule_Model_Action_Collection::class, $this->subject->getActions());
+ static::assertInstanceOf(Mage_Rule_Model_Action_Collection::class, self::$subject->getActions());
} catch (Error $error) {
- $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
+ static::assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
}
}
/**
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetForm(): void
{
- $this->assertInstanceOf(Varien_Data_Form::class, $this->subject->getForm());
+ static::assertInstanceOf(Varien_Data_Form::class, self::$subject->getForm());
}
/**
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testLoadPost(array $data = []): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->loadPost($data));
+ static::assertInstanceOf(Subject::class, self::$subject->loadPost($data));
}
/**
* @covers Mage_Rule_Model_Abstract::validate()
* @dataProvider provideValidateData
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
- public function testValidate($expectedResul, ?array $data = null): void
+ public function testValidate(bool|array $expectedResul, ?array $data = null): void
{
$object = new Varien_Object($data);
try {
- $this->assertSame($expectedResul, $this->subject->validate($object));
+ static::assertSame($expectedResul, self::$subject->validate($object));
} catch (Error $error) {
- $this->assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
+ static::assertSame(self::CALL_TO_A_MEMBER_FUNCTION_SET_RULE_ON_NULL, $error->getMessage());
}
}
/**
* @dataProvider provideValidateData
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
- public function testValidateData($expectedResul, ?array $data = null): void
+ public function testValidateData(bool|array $expectedResul, ?array $data = null): void
{
if (PHP_VERSION_ID >= 80300 && version_compare(InstalledVersions::getPrettyVersion('shardj/zf1-future'), '1.24.2', '<=')) {
- $this->markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465');
+ static::markTestSkipped('see https://github.com/Shardj/zf1-future/pull/465');
}
$object = new Varien_Object($data);
- $this->assertSame($expectedResul, $this->subject->validateData($object));
+ static::assertSame($expectedResul, self::$subject->validateData($object));
}
/**
* @covers Mage_Rule_Model_Abstract::isDeleteable()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testIsDeleteable(): void
{
- $this->assertIsBool($this->subject->isDeleteable());
+ static::assertIsBool(self::$subject->isDeleteable());
}
/**
* @covers Mage_Rule_Model_Abstract::setIsDeleteable()
* @dataProvider provideBool
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testSetIsDeleteable(bool $value): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setIsDeleteable($value));
+ static::assertInstanceOf(Subject::class, self::$subject->setIsDeleteable($value));
}
/**
* @covers Mage_Rule_Model_Abstract::isReadonly()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testIsReadonly(): void
{
- $this->assertIsBool($this->subject->isReadonly());
+ static::assertIsBool(self::$subject->isReadonly());
}
/**
* @covers Mage_Rule_Model_Abstract::setIsReadonly()
* @dataProvider provideBool
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testSetIsReadonly(bool $value): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setIsReadonly($value));
+ static::assertInstanceOf(Subject::class, self::$subject->setIsReadonly($value));
}
/**
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetWebsiteIds(): void
{
try {
- $this->assertIsArray($this->subject->getWebsiteIds());
+ static::assertIsArray(self::$subject->getWebsiteIds());
} catch (Mage_Core_Exception $exception) {
- $this->assertSame('Resource is not set.', $exception->getMessage());
+ static::assertSame('Resource is not set.', $exception->getMessage());
}
}
/**
* @covers Mage_Rule_Model_Abstract::asString()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testAsString(): void
{
- $this->assertSame('', $this->subject->asString());
+ static::assertSame('', self::$subject->asString());
}
/**
* @covers Mage_Rule_Model_Abstract::asHtml()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testAsHtml(): void
{
- $this->assertSame('', $this->subject->asHtml());
+ static::assertSame('', self::$subject->asHtml());
}
/**
* @covers Mage_Rule_Model_Abstract::asArray()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testAsArray(): void
{
- $this->assertSame([], $this->subject->asArray());
+ static::assertSame([], self::$subject->asArray());
}
}
diff --git a/tests/unit/Mage/Rule/Model/EnvironmentTest.php b/tests/unit/Mage/Rule/Model/EnvironmentTest.php
index 8fdae735880..04a33b16fe3 100644
--- a/tests/unit/Mage/Rule/Model/EnvironmentTest.php
+++ b/tests/unit/Mage/Rule/Model/EnvironmentTest.php
@@ -1,16 +1,9 @@
subject = Mage::getModel('rule/environment');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('rule/environment');
}
/**
* @covers Mage_Rule_Model_Environment::collect()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetConditionsInstance(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->collect());
+ static::assertInstanceOf(Subject::class, self::$subject->collect());
}
}
diff --git a/tests/unit/Mage/Rule/Model/RuleTest.php b/tests/unit/Mage/Rule/Model/RuleTest.php
index 636199a4bbc..641a903fa9d 100644
--- a/tests/unit/Mage/Rule/Model/RuleTest.php
+++ b/tests/unit/Mage/Rule/Model/RuleTest.php
@@ -1,16 +1,9 @@
subject = Mage::getModel('rule/rule');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::getModel('rule/rule');
}
/**
* @covers Mage_Rule_Model_Rule::getConditionsInstance()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetConditionsInstance(): void
{
- $this->assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, $this->subject->getConditionsInstance());
+ static::assertInstanceOf(Mage_Rule_Model_Condition_Combine::class, self::$subject->getConditionsInstance());
}
/**
* @covers Mage_Rule_Model_Rule::getActionsInstance()
- * @group Mage_Rule
- * @group Mage_Rule_Model
+ * @group Model
*/
public function testGetActionsInstance(): void
{
- $this->assertInstanceOf(Mage_Rule_Model_Action_Collection::class, $this->subject->getActionsInstance());
+ static::assertInstanceOf(Mage_Rule_Model_Action_Collection::class, self::$subject->getActionsInstance());
}
}
diff --git a/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php b/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php
index ee0d091914f..b1542c4031c 100644
--- a/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php
+++ b/tests/unit/Mage/Sales/Block/Order/Item/Renderer/DefaultTest.php
@@ -17,28 +17,26 @@
namespace OpenMage\Tests\Unit\Mage\Sales\Block\Order\Item\Renderer;
-use Mage;
use Mage_Sales_Block_Order_Item_Renderer_Default as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
use Varien_Object;
-class DefaultTest extends TestCase
+class DefaultTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = new Subject();
+ parent::setUpBeforeClass();
+ self::$subject = new Subject();
}
/**
* @covers Mage_Sales_Block_Order_Item_Renderer_Default::setItem()
- * @group Mage_Sales
- * @group Mage_Sales_Block
+ * @group Block
*/
public function testSetItem(): void
{
- $this->assertInstanceOf(Subject::class, $this->subject->setItem(new Varien_Object()));
+ static::assertInstanceOf(Subject::class, self::$subject->setItem(new Varien_Object()));
}
}
diff --git a/tests/unit/Mage/Sitemap/Model/SitemapTest.php b/tests/unit/Mage/Sitemap/Model/SitemapTest.php
index b2b23d2df97..c48b032549f 100644
--- a/tests/unit/Mage/Sitemap/Model/SitemapTest.php
+++ b/tests/unit/Mage/Sitemap/Model/SitemapTest.php
@@ -17,56 +17,45 @@
namespace OpenMage\Tests\Unit\Mage\Sitemap\Model;
-use Mage;
use Mage_Sitemap_Model_Sitemap as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Sitemap\SitemapTrait;
+use Throwable;
-class SitemapTest extends TestCase
+class SitemapTest extends OpenMageTest
{
- public const SITEMAP_FILE = '???phpunit.sitemap.xml';
-
- public Subject $subject;
-
- public function setUp(): void
- {
- Mage::app();
- $this->subject = Mage::getModel('sitemap/sitemap');
- }
+ use SitemapTrait;
/**
- * @group Mage_Sitemap
- * @group Mage_Sitemap_Model
+ * @dataProvider provideGetPreparedFilenameData
+ * @group Model
*/
- public function testGetPreparedFilename(): void
+ public function testGetPreparedFilename(array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getSitemapFilename'])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
- $mock->method('getSitemapFilename')->willReturn('text.xml');
- $this->assertIsString($mock->getPreparedFilename());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertIsString($mock->getPreparedFilename());
}
/**
- * @group Mage_Sitemap
- * @group Mage_Sitemap
- * @group Mage_Sitemap_Model
- * @group Mage_Sitemap_Model
- * @todo test content of xml
+ * @dataProvider provideGenerateXmlData
+ * @group Model
+ * @throws Throwable
* @todo test validation
+ * @todo test content of xml
*/
- public function testGenerateXml(): void
+ public function testGenerateXml(array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['isDeleted']) # do not save to DB
- ->setMethods(['getSitemapFilename'])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods);
+ static::assertInstanceOf(Subject::class, $mock);
- $mock->method('isDeleted')->willReturn(true);
- $mock->method('getSitemapFilename')->willReturn(self::SITEMAP_FILE);
$result = $mock->generateXml();
- $this->assertInstanceOf(Subject::class, $result);
- $this->assertFileExists(self::SITEMAP_FILE);
- unlink(self::SITEMAP_FILE);
+ static::assertInstanceOf(Subject::class, $result);
+
+ /** @var string $file */
+ $file = $methods['getSitemapFilename'];
+ static::assertFileExists($file);
+ unlink($file);
}
}
diff --git a/tests/unit/Mage/Tax/Helper/DataTest.php b/tests/unit/Mage/Tax/Helper/DataTest.php
index c09fa730d57..85db714b45e 100644
--- a/tests/unit/Mage/Tax/Helper/DataTest.php
+++ b/tests/unit/Mage/Tax/Helper/DataTest.php
@@ -17,393 +17,340 @@
namespace OpenMage\Tests\Unit\Mage\Tax\Helper;
-use Generator;
use Mage;
use Mage_Tax_Helper_Data as Subject;
use Mage_Tax_Model_Calculation;
use Mage_Tax_Model_Config;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
+use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Tax\TaxTrait;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ use TaxTrait;
+ private static Subject $subject;
+
+ public const SKIP_INCOMPLETE = 'incomplete';
public const SKIP_WITH_LOCAL_DATA = 'Constant DATA_MAY_CHANGED is defined.';
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('tax/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('tax/data');
}
/**
* @covers Mage_Tax_Helper_Data::getPostCodeSubStringLength()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetPostCodeSubStringLength(): void
{
- $this->assertSame(10, $this->subject->getPostCodeSubStringLength());
+ static::assertSame(10, self::$subject->getPostCodeSubStringLength());
}
/**
* @covers Mage_Tax_Helper_Data::getConfig()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetConfig(): void
{
- $this->assertInstanceOf(Mage_Tax_Model_Config::class, $this->subject->getConfig());
+ static::assertInstanceOf(Mage_Tax_Model_Config::class, self::$subject->getConfig());
}
/**
* @covers Mage_Tax_Helper_Data::getCalculator()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetCalculator(): void
{
- $this->assertInstanceOf(Mage_Tax_Model_Calculation::class, $this->subject->getCalculator());
+ static::assertInstanceOf(Mage_Tax_Model_Calculation::class, self::$subject->getCalculator());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
* @doesNotPerformAssertions
*/
public function testGetProductPrice(): void
{
- #$this->assertSame('', $this->subject->getProductPrice());
- $this->markTestIncomplete();
+ static::markTestSkipped(self::SKIP_INCOMPLETE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertSame('', self::$subject->getProductPrice());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testPriceIncludesTax(): void
{
- $this->assertFalse($this->subject->priceIncludesTax());
+ static::assertFalse(self::$subject->priceIncludesTax());
}
/**
* @covers Mage_Tax_Helper_Data::applyTaxAfterDiscount()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testApplyTaxAfterDiscount(): void
{
- $this->assertTrue($this->subject->applyTaxAfterDiscount());
+ static::assertTrue(self::$subject->applyTaxAfterDiscount());
}
/**
* @covers Mage_Tax_Helper_Data::getIncExcText()
* @dataProvider provideGetIncExcText
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetIncExcText(string $expectedResult, bool $flag): void
{
- $this->assertStringContainsString($expectedResult, $this->subject->getIncExcText($flag));
- }
-
- public function provideGetIncExcText(): Generator
- {
- yield 'true' => [
- 'Incl. Tax',
- true,
- ];
- yield 'false' => [
- 'Excl. Tax',
- false,
- ];
+ static::assertStringContainsString($expectedResult, self::$subject->getIncExcText($flag));
}
/**
* @covers Mage_Tax_Helper_Data::getPriceDisplayType()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetPriceDisplayType(): void
{
- $this->assertSame(1, $this->subject->getPriceDisplayType());
+ static::assertSame(1, self::$subject->getPriceDisplayType());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
* @doesNotPerformAssertions
*/
public function testNeedPriceConversion(): void
{
- #$this->assertSame(1, $this->subject->needPriceConversion());
- $this->markTestIncomplete();
+ static::markTestSkipped(self::SKIP_INCOMPLETE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertSame(1, self::$subject->needPriceConversion());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
* @group runInSeparateProcess
* @runInSeparateProcess
* @doesNotPerformAssertions
*/
public function testGetPriceFormat(): void
{
- #$this->assertSame('', $this->subject->getPriceFormat());
- $this->markTestIncomplete();
+ static::markTestSkipped(self::SKIP_INCOMPLETE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertSame('', self::$subject->getPriceFormat());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
- * @group UsesSampleDataFlag
+ * @group Helper
*/
public function testGetTaxRatesByProductClass(): void
{
if (defined('DATA_MAY_CHANGED')) {
- $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
+ static::markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
}
- $this->assertSame('{"value_2":8.25,"value_4":0}', $this->subject->getTaxRatesByProductClass());
+ static::assertSame('{"value_2":8.25,"value_4":0}', self::$subject->getTaxRatesByProductClass());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
- * @group UsesSampleDataFlag
+ * @group Helper
*/
public function testGetAllRatesByProductClass(): void
{
if (defined('DATA_MAY_CHANGED')) {
- $this->markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
+ static::markTestSkipped(self::SKIP_WITH_LOCAL_DATA);
}
- $this->assertSame('{"value_2":8.25,"value_4":0}', $this->subject->getAllRatesByProductClass());
+ static::assertSame('{"value_2":8.25,"value_4":0}', self::$subject->getAllRatesByProductClass());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
* @doesNotPerformAssertions
*/
public function testGetPrice(): void
{
- #$this->assertFalse($this->subject->getPrice());
- $this->markTestIncomplete();
+ static::markTestSkipped(self::SKIP_INCOMPLETE);
+ /** @phpstan-ignore deadCode.unreachable */
+ static::assertFalse(self::$subject->getPrice());
}
/**
* @covers Mage_Tax_Helper_Data::displayPriceIncludingTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayPriceIncludingTax(): void
{
- $this->assertFalse($this->subject->displayPriceIncludingTax());
+ static::assertFalse(self::$subject->displayPriceIncludingTax());
}
/**
* @covers Mage_Tax_Helper_Data::displayPriceExcludingTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayPriceExcludingTax(): void
{
- $this->assertTrue($this->subject->displayPriceExcludingTax());
+ static::assertTrue(self::$subject->displayPriceExcludingTax());
}
/**
* @covers Mage_Tax_Helper_Data::displayBothPrices()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayBothPrices(): void
{
- $this->assertFalse($this->subject->displayBothPrices());
+ static::assertFalse(self::$subject->displayBothPrices());
}
/**
* @dataProvider provideGetIncExcTaxLabel
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
- public function testGetIncExcTaxLabel($expectedResult, bool $flag): void
- {
- $this->assertStringContainsString($expectedResult, $this->subject->getIncExcTaxLabel($flag));
- }
-
- public function provideGetIncExcTaxLabel(): Generator
+ public function testGetIncExcTaxLabel(string $expectedResult, bool $flag): void
{
- yield 'true' => [
- '(Incl. Tax)',
- true,
- ];
- yield 'false' => [
- '(Excl. Tax)',
- false,
- ];
+ static::assertStringContainsString($expectedResult, self::$subject->getIncExcTaxLabel($flag));
}
/**
* @covers Mage_Tax_Helper_Data::shippingPriceIncludesTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testShippingPriceIncludesTax(): void
{
- $this->assertFalse($this->subject->shippingPriceIncludesTax());
+ static::assertFalse(self::$subject->shippingPriceIncludesTax());
}
/**
* @covers Mage_Tax_Helper_Data::getShippingPriceDisplayType()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetShippingPriceDisplayType(): void
{
- $this->assertSame(1, $this->subject->getShippingPriceDisplayType());
+ static::assertSame(1, self::$subject->getShippingPriceDisplayType());
}
/**
* @covers Mage_Tax_Helper_Data::displayShippingPriceIncludingTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayShippingPriceIncludingTax(): void
{
- $this->assertFalse($this->subject->displayShippingPriceIncludingTax());
+ static::assertFalse(self::$subject->displayShippingPriceIncludingTax());
}
/**
* @covers Mage_Tax_Helper_Data::displayShippingPriceExcludingTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayShippingPriceExcludingTax(): void
{
- $this->assertTrue($this->subject->displayShippingPriceExcludingTax());
+ static::assertTrue(self::$subject->displayShippingPriceExcludingTax());
}
/**
* @covers Mage_Tax_Helper_Data::displayShippingBothPrices()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDisplayShippingBothPrices(): void
{
- $this->assertFalse($this->subject->displayShippingBothPrices());
+ static::assertFalse(self::$subject->displayShippingBothPrices());
}
/**
* @covers Mage_Tax_Helper_Data::getShippingTaxClass()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetShippingTaxClass(): void
{
- $this->assertSame(0, $this->subject->getShippingTaxClass(null));
+ static::assertSame(0, self::$subject->getShippingTaxClass(null));
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetShippingPrice(): void
{
- $this->assertEqualsWithDelta(100.0, $this->subject->getShippingPrice(100.0), PHP_FLOAT_EPSILON);
+ static::assertEqualsWithDelta(100.0, self::$subject->getShippingPrice(100.0), PHP_FLOAT_EPSILON);
}
/**
* @covers Mage_Tax_Helper_Data::discountTax()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testDiscountTax(): void
{
- $this->assertFalse($this->subject->discountTax());
+ static::assertFalse(self::$subject->discountTax());
}
/**
* @covers Mage_Tax_Helper_Data::getTaxBasedOn()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetTaxBasedOn(): void
{
- $this->assertSame('shipping', $this->subject->getTaxBasedOn());
+ static::assertSame('shipping', self::$subject->getTaxBasedOn());
}
/**
* @covers Mage_Tax_Helper_Data::applyTaxOnCustomPrice()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testApplyTaxOnCustomPrice(): void
{
- $this->assertTrue($this->subject->applyTaxOnCustomPrice());
+ static::assertTrue(self::$subject->applyTaxOnCustomPrice());
}
/**
* @covers Mage_Tax_Helper_Data::applyTaxOnOriginalPrice()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testApplyTaxOnOriginalPrice(): void
{
- $this->assertFalse($this->subject->applyTaxOnOriginalPrice());
+ static::assertFalse(self::$subject->applyTaxOnOriginalPrice());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetCalculationSequence(): void
{
- $this->assertSame('1_0', $this->subject->getCalculationSequence());
+ static::assertSame('1_0', self::$subject->getCalculationSequence());
}
/**
* @covers Mage_Tax_Helper_Data::getCalculationAgorithm()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testGetCalculationAgorithm(): void
{
- $this->assertSame('TOTAL_BASE_CALCULATION', $this->subject->getCalculationAgorithm());
+ static::assertSame('TOTAL_BASE_CALCULATION', self::$subject->getCalculationAgorithm());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testIsWrongDisplaySettingsIgnored(): void
{
- $this->assertFalse($this->subject->isWrongDisplaySettingsIgnored());
+ static::assertFalse(self::$subject->isWrongDisplaySettingsIgnored());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testIsWrongDiscountSettingsIgnored(): void
{
- $this->assertFalse($this->subject->isWrongDiscountSettingsIgnored());
+ static::assertFalse(self::$subject->isWrongDiscountSettingsIgnored());
}
/**
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testIsConflictingFptTaxConfigurationSettingsIgnored(): void
{
- $this->assertFalse($this->subject->isConflictingFptTaxConfigurationSettingsIgnored());
+ static::assertFalse(self::$subject->isConflictingFptTaxConfigurationSettingsIgnored());
}
/**
* @covers Mage_Tax_Helper_Data::isCrossBorderTradeEnabled()
- * @group Mage_Tax
- * @group Mage_Tax_Helper
+ * @group Helper
*/
public function testIsCrossBorderTradeEnabled(): void
{
- $this->assertFalse($this->subject->isCrossBorderTradeEnabled());
+ static::assertFalse(self::$subject->isCrossBorderTradeEnabled());
}
}
diff --git a/tests/unit/Mage/Uploader/Block/AbstractTest.php b/tests/unit/Mage/Uploader/Block/AbstractTest.php
index 56f5c2588a0..5bd42bbebfa 100644
--- a/tests/unit/Mage/Uploader/Block/AbstractTest.php
+++ b/tests/unit/Mage/Uploader/Block/AbstractTest.php
@@ -17,61 +17,55 @@
namespace OpenMage\Tests\Unit\Mage\Uploader\Block;
-use Mage;
use Mage_Uploader_Block_Abstract as Subject;
use Mage_Uploader_Model_Config_Browsebutton;
use Mage_Uploader_Model_Config_Misc;
use Mage_Uploader_Model_Config_Uploader;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class AbstractTest extends TestCase
+class AbstractTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
public function setUp(): void
{
- Mage::app();
- $this->subject = $this->getMockForAbstractClass(Subject::class);
+ self::$subject = $this->getMockForAbstractClass(Subject::class);
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Block
+ * @group Block
*/
public function testGetMiscConfig(): void
{
- $this->assertInstanceOf(Mage_Uploader_Model_Config_Misc::class, $this->subject->getMiscConfig());
+ static::assertInstanceOf(Mage_Uploader_Model_Config_Misc::class, self::$subject->getMiscConfig());
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Block
+ * @group Block
* @group runInSeparateProcess
* @runInSeparateProcess
*/
public function testGetUploaderConfig(): void
{
- $this->assertInstanceOf(Mage_Uploader_Model_Config_Uploader::class, $this->subject->getUploaderConfig());
+ static::assertInstanceOf(Mage_Uploader_Model_Config_Uploader::class, self::$subject->getUploaderConfig());
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Block
+ * @group Block
*/
public function testGetButtonConfig(): void
{
- $this->assertInstanceOf(Mage_Uploader_Model_Config_Browsebutton::class, $this->subject->getButtonConfig());
+ static::assertInstanceOf(Mage_Uploader_Model_Config_Browsebutton::class, self::$subject->getButtonConfig());
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Block
+ * @group Block
*/
public function testGetElementId(): void
{
$suffix = 'test';
- $result = $this->subject->getElementId($suffix);
- $this->assertStringStartsWith('id_', $result);
- $this->assertStringEndsWith('-' . $suffix, $result);
+ $result = self::$subject->getElementId($suffix);
+ static::assertStringStartsWith('id_', $result);
+ static::assertStringEndsWith('-' . $suffix, $result);
}
}
diff --git a/tests/unit/Mage/Uploader/Helper/DataTest.php b/tests/unit/Mage/Uploader/Helper/DataTest.php
index 591686c376d..fe241150215 100644
--- a/tests/unit/Mage/Uploader/Helper/DataTest.php
+++ b/tests/unit/Mage/Uploader/Helper/DataTest.php
@@ -19,24 +19,23 @@
use Mage;
use Mage_Uploader_Helper_Data as Subject;
-use PHPUnit\Framework\TestCase;
+use OpenMage\Tests\Unit\OpenMageTest;
-class DataTest extends TestCase
+class DataTest extends OpenMageTest
{
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
- $this->subject = Mage::helper('uploader/data');
+ parent::setUpBeforeClass();
+ self::$subject = Mage::helper('uploader/data');
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @group Helper
*/
public function testIsModuleEnabled(): void
{
- $this->assertIsBool($this->subject->isModuleEnabled());
+ static::assertIsBool(self::$subject->isModuleEnabled());
}
}
diff --git a/tests/unit/Mage/Uploader/Helper/FileTest.php b/tests/unit/Mage/Uploader/Helper/FileTest.php
index 3926d5b72bd..d675d08fcf5 100644
--- a/tests/unit/Mage/Uploader/Helper/FileTest.php
+++ b/tests/unit/Mage/Uploader/Helper/FileTest.php
@@ -20,23 +20,23 @@
use Mage;
use Mage_Core_Model_Config;
use Mage_Uploader_Helper_File as Subject;
+use OpenMage\Tests\Unit\OpenMageTest;
use OpenMage\Tests\Unit\Traits\DataProvider\Mage\Uploader\UploaderTrait;
-use PHPUnit\Framework\TestCase;
-class FileTest extends TestCase
+class FileTest extends OpenMageTest
{
use UploaderTrait;
- public Subject $subject;
+ private static Subject $subject;
- public function setUp(): void
+ public static function setUpBeforeClass(): void
{
- Mage::app();
+ parent::setUpBeforeClass();
/** @var Mage_Core_Model_Config $config */
$config = Mage::getConfig();
$config->setNode('global/mime/types/test-new-node', 'application/octet-stream');
- $this->subject = Mage::helper('uploader/file');
+ self::$subject = Mage::helper('uploader/file');
}
/**
@@ -44,59 +44,50 @@ public function setUp(): void
* @param array $expectedResult
* @param string|array $extensionsList
*
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @group Helper
*/
public function testGetMimeTypeFromExtensionList(array $expectedResult, $extensionsList): void
{
- $this->assertSame($expectedResult, $this->subject->getMimeTypeFromExtensionList($extensionsList));
+ static::assertSame($expectedResult, self::$subject->getMimeTypeFromExtensionList($extensionsList));
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @group Helper
*/
public function testGetPostMaxSize(): void
{
- $this->assertIsString($this->subject->getPostMaxSize());
+ static::assertIsString(self::$subject->getPostMaxSize());
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @group Helper
*/
public function testGetUploadMaxSize(): void
{
- $this->assertIsString($this->subject->getUploadMaxSize());
+ static::assertIsString(self::$subject->getUploadMaxSize());
}
/**
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @dataProvider provideGetDataMaxSizeData
+ * @group Helper
*/
- public function testGetDataMaxSize(): void
+ public function testGetDataMaxSize(string $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getPostMaxSize', 'getUploadMaxSize'])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods, true);
- $mock->expects($this->once())->method('getPostMaxSize')->willReturn('1G');
- $mock->expects($this->once())->method('getUploadMaxSize')->willReturn('1M');
- $this->assertSame('1M', $mock->getDataMaxSize());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->getDataMaxSize());
}
/**
* @dataProvider provideGetDataMaxSizeInBytesData
- * @group Mage_Uploader
- * @group Mage_Uploader_Helper
+ * @group Helper
*/
- public function testGetDataMaxSizeInBytes(int $expectedResult, string $maxSize): void
+ public function testGetDataMaxSizeInBytes(int $expectedResult, array $methods): void
{
- $mock = $this->getMockBuilder(Subject::class)
- ->setMethods(['getDataMaxSize'])
- ->getMock();
+ $mock = $this->getMockWithCalledMethods(Subject::class, $methods, true);
- $mock->expects($this->once())->method('getDataMaxSize')->willReturn($maxSize);
- $this->assertSame($expectedResult, $mock->getDataMaxSizeInBytes());
+ static::assertInstanceOf(Subject::class, $mock);
+ static::assertSame($expectedResult, $mock->getDataMaxSizeInBytes());
}
}
diff --git a/tests/unit/Mage/Wishlist/Model/ItemTest.php b/tests/unit/Mage/Wishlist/Model/ItemTest.php
new file mode 100644
index 00000000000..753f1e245e3
--- /dev/null
+++ b/tests/unit/Mage/Wishlist/Model/ItemTest.php
@@ -0,0 +1,93 @@
+setQty($inputQty);
+ static::assertEquals($expectedQty, self::$subject->getQty());
+ }
+
+ public function qtyDataProvider(): \Generator
+ {
+ yield 'positive quantity' => [
+ 5,
+ 5,
+ ];
+ yield 'zero quantity' => [
+ 0,
+ 0,
+ ];
+ yield 'negative quantity' => [
+ 1,
+ -1,
+ ];
+ }
+
+ /**
+ * @dataProvider validateDataProvider
+ * @group Model
+ * @throws Mage_Core_Exception
+ */
+ public function testValidate(?string $expectedExceptionMessage, ?int $wishlistId, ?int $productId): void
+ {
+ self::$subject->setWishlistId($wishlistId);
+ self::$subject->setProductId($productId);
+
+ if ($expectedExceptionMessage) {
+ $this->expectExceptionMessage($expectedExceptionMessage);
+ }
+
+ $result = self::$subject->validate();
+
+ if (!$expectedExceptionMessage) {
+ static::assertTrue($result);
+ }
+ }
+
+ public function validateDataProvider(): \Generator
+ {
+ yield 'valid data' => [
+ null,
+ 1,
+ 1,
+ ];
+ yield 'missing wishlist ID' => [
+ 'Cannot specify wishlist.',
+ null,
+ 1,
+ ];
+ yield 'missing product ID' => [
+ 'Cannot specify product.',
+ 1,
+ null,
+ ];
+ }
+}
diff --git a/tests/unit/OpenMageTest.php b/tests/unit/OpenMageTest.php
new file mode 100644
index 00000000000..cccd57c9484
--- /dev/null
+++ b/tests/unit/OpenMageTest.php
@@ -0,0 +1,66 @@
+getMockBuilder($class)
+ ->setMethods(array_keys($methods))
+ ->getMock();
+
+ if (is_null($expectOnce)) {
+ return $mock;
+ }
+
+ foreach ($methods as $key => $value) {
+ if ($expectOnce) {
+ $mockMethod = $mock->expects(static::once())->method($key);
+ } else {
+ $mockMethod = $mock->method($key);
+ }
+
+ if ($value === self::WILL_RETURN_SELF) {
+ $mockMethod->willReturnSelf();
+ } else {
+ $mockMethod->willReturn($value);
+ }
+ }
+
+ return $mock;
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Base/BoolTrait.php b/tests/unit/Traits/DataProvider/Base/BoolTrait.php
index d7c32d61cb8..1ec25854bee 100644
--- a/tests/unit/Traits/DataProvider/Base/BoolTrait.php
+++ b/tests/unit/Traits/DataProvider/Base/BoolTrait.php
@@ -1,16 +1,9 @@
[
+ true,
+ [
+ 'getBlockName' => 'test/block',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'invalid' => [
+ [$errorIncorrectBlockName],
+ [
+ 'getBlockName' => 'Test_Block',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'errors: blank blockname' => [
+ [
+ 'Block Name is required field.',
+ 'Block Name is incorrect.',
+ 'Is Allowed is required field.',
+ ],
+ [
+ 'getBlockName' => '',
+ 'getIsAllowed' => '',
+ ],
+ ];
+ yield 'errors: invalid char blockname' => [
+ [$errorIncorrectBlockName],
+ [
+ 'getBlockName' => '~',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'errors: invalid blockname' => [
+ [$errorIncorrectBlockName],
+ [
+ 'getBlockName' => 'test',
+ 'getIsAllowed' => '0',
+ ],
+ ];
+ yield 'errors: null blockname' => [
+ [
+ 'Block Name is required field.',
+ $errorIncorrectBlockName,
+ ],
+ [
+ 'getBlockName' => null,
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'errors: special chars in blockname' => [
+ [$errorIncorrectBlockName],
+ [
+ 'getBlockName' => '!@#$%^&*()',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'errors: numeric blockname' => [
+ [$errorIncorrectBlockName],
+ [
+ 'getBlockName' => '12345',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'valid: mixed case blockname' => [
+ true,
+ [
+ 'getBlockName' => 'Test/Block',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Admin/Model/UserTrait.php b/tests/unit/Traits/DataProvider/Mage/Admin/Model/UserTrait.php
new file mode 100644
index 00000000000..3b07b2281eb
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Admin/Model/UserTrait.php
@@ -0,0 +1,115 @@
+ '999',
+ 'getUsername' => 'new',
+ 'getPassword' => 'veryl0ngpassw0rd',
+ 'getIsActive' => '1',
+ 'validatePasswordHash' => true,
+ 'hasAssigned2Role' => true,
+ ];
+
+ yield 'pass' => [
+ true,
+ $validData,
+ ];
+
+ $data = $validData;
+ $data['getUsername'] = 'admin';
+ yield 'fail #0 account exists' => [
+ 'User Name already exists.',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['getIsActive'] = '0';
+ yield 'fail #1 inactive' => [
+ 'This account is inactive.',
+ $data,
+ ];
+
+ $data = $validData;
+ $data['validatePasswordHash'] = false;
+ yield 'fail #2 invalid hash' => [
+ false,
+ $data,
+ ];
+
+ $data = $validData;
+ $data['hasAssigned2Role'] = false;
+ yield 'fail #3 no role assigned' => [
+ 'Access denied.',
+ $data,
+ ];
+ }
+
+ public function provideValidateAdminUserData(): Generator
+ {
+ yield 'fail #1' => [
+ [
+ 0 => 'User Name is required field.',
+ 1 => 'First Name is required field.',
+ 2 => 'Last Name is required field.',
+ 3 => 'Please enter a valid email.',
+ 4 => 'Password must be at least of 14 characters.',
+ 5 => 'Password must include both numeric and alphabetic characters.',
+ ],
+ [
+ 'hasNewPassword' => true,
+ 'getNewPassword' => '123',
+ 'hasPassword' => false,
+ 'getPassword' => '456',
+ ],
+ ];
+ yield 'fails #2' => [
+ [
+ 0 => 'User Name is required field.',
+ 1 => 'First Name is required field.',
+ 2 => 'Last Name is required field.',
+ 3 => 'Please enter a valid email.',
+ 4 => 'Password must be at least of 14 characters.',
+ 5 => 'Password must include both numeric and alphabetic characters.',
+ ],
+ [
+ 'hasNewPassword' => false,
+ 'getNewPassword' => '123',
+ 'hasPassword' => true,
+ 'getPassword' => '456',
+ ],
+ ];
+ }
+
+ public function provideIsResetPasswordLinkTokenExpiredData(): Generator
+ {
+ yield '#1' => [
+ true,
+ [
+ 'getRpToken' => '',
+ 'getRpTokenCreatedAt' => '',
+ ],
+ ];
+ yield '#2' => [
+ true,
+ [
+ 'getRpToken' => '1',
+ 'getRpTokenCreatedAt' => '0',
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Admin/Model/VariableTrait.php b/tests/unit/Traits/DataProvider/Mage/Admin/Model/VariableTrait.php
new file mode 100644
index 00000000000..1c543e3917e
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Admin/Model/VariableTrait.php
@@ -0,0 +1,48 @@
+ [
+ true,
+ [
+ 'getVariableName' => 'test',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'test error empty' => [
+ ['Variable Name is required field.'],
+ [
+ 'getVariableName' => '',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'test error regex' => [
+ ['Variable Name is incorrect.'],
+ [
+ 'getVariableName' => '#invalid-name#',
+ 'getIsAllowed' => '1',
+ ],
+ ];
+ yield 'test error allowed' => [
+ ['Is Allowed is required field.'],
+ [
+ 'getVariableName' => 'test',
+ 'getIsAllowed' => '',
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/AdminNotification/Model/InboxTrait.php b/tests/unit/Traits/DataProvider/Mage/AdminNotification/Model/InboxTrait.php
new file mode 100644
index 00000000000..acd689a70d9
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/AdminNotification/Model/InboxTrait.php
@@ -0,0 +1,38 @@
+ [
+ [
+ Subject::SEVERITY_CRITICAL => 'critical',
+ Subject::SEVERITY_MAJOR => 'major',
+ Subject::SEVERITY_MINOR => 'minor',
+ Subject::SEVERITY_NOTICE => 'notice',
+ ],
+ null,
+ ];
+ yield 'valid' => [
+ 'critical',
+ Subject::SEVERITY_CRITICAL,
+ ];
+ yield 'invalid' => [
+ null,
+ 0,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Adminhtml/Block/Widget/GridTrait.php b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Block/Widget/GridTrait.php
new file mode 100644
index 00000000000..ee7a543ae3e
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Block/Widget/GridTrait.php
@@ -0,0 +1,145 @@
+ [
+ [],
+ [],
+ ];
+ yield 'index entity_id' => [
+ [
+ 'index' => 'entity_id',
+ 'align' => 'right',
+ 'type' => 'number',
+ 'width' => '1',
+ ],
+ [
+ 'index' => 'entity_id',
+ ],
+ ];
+ yield 'index entity_id w/ override' => [
+ [
+ 'index' => 'entity_id',
+ 'align' => 'center',
+ 'type' => 'text',
+ ],
+ [
+ 'index' => 'entity_id',
+ 'align' => 'center',
+ 'type' => 'text',
+ ],
+ ];
+ yield 'index array - ref #4475' => [
+ [
+ 'index' => ['firstname', 'lastname'],
+ 'type' => 'concat',
+ 'separator' => ' ',
+ ],
+ [
+ 'index' => ['firstname', 'lastname'],
+ 'type' => 'concat',
+ ],
+ ];
+ yield 'type action' => [
+ [
+ 'type' => 'action',
+ 'filter' => false,
+ 'sortable' => false,
+ 'width' => '40',
+ 'header' => 'Action',
+ ],
+ [
+ 'type' => 'action',
+ ],
+ ];
+ yield 'type action w/ override' => [
+ [
+ 'type' => 'action',
+ 'header' => 'test',
+ 'filter' => false,
+ 'sortable' => false,
+ 'width' => '40',
+ ],
+ [
+ 'type' => 'action',
+ 'header' => 'test',
+ ],
+ ];
+ yield 'type currency' => [
+ [
+ 'type' => 'currency',
+ 'align' => 'right',
+ 'index' => 'price',
+ 'header' => 'Price',
+ ],
+ [
+ 'type' => 'currency',
+ ],
+ ];
+ yield 'type date' => [
+ [
+ 'type' => 'date',
+ 'width' => '140',
+ ],
+ [
+ 'type' => 'date',
+ ],
+ ];
+ yield 'type datetime' => [
+ [
+ 'type' => 'datetime',
+ 'width' => '170',
+ ],
+ [
+ 'type' => 'datetime',
+ ],
+ ];
+ yield 'type number' => [
+ [
+ 'type' => 'number',
+ 'align' => 'right',
+ 'width' => '1',
+ ],
+ [
+ 'type' => 'number',
+ ],
+ ];
+ yield 'type price' => [
+ [
+ 'type' => 'price',
+ 'align' => 'right',
+ 'index' => 'price',
+ 'header' => 'Price',
+ ],
+ [
+ 'type' => 'price',
+ ],
+ ];
+ yield 'type store' => [
+ [
+ 'type' => 'store',
+ 'index' => 'store_id',
+ 'store_view' => true,
+ 'width' => '160',
+ 'header' => 'Store View',
+ ],
+ [
+ 'type' => 'store',
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/AddressTrait.php b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/AddressTrait.php
new file mode 100644
index 00000000000..44d9efde1c1
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/AddressTrait.php
@@ -0,0 +1,29 @@
+ [
+ Subject::DEFAULT_STREET_LINES_COUNT,
+ 0,
+ ];
+ yield 'custom' => [
+ 4,
+ 4,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/ConfigTrait.php b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/ConfigTrait.php
new file mode 100644
index 00000000000..2a435d4a126
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/ConfigTrait.php
@@ -0,0 +1,54 @@
+ 'adminhtml/system_config_backend_color',
+ ];
+
+ public function provideGetInputTypes(): Generator
+ {
+ yield 'null' => [
+ [
+ 'color' => [
+ 'backend_model' => self::$backendModel['color'],
+ ],
+ ],
+ null,
+ ];
+ yield 'color' => [
+ [
+ 'backend_model' => self::$backendModel['color'],
+ ],
+ 'color',
+ ];
+ yield 'invalid' => [
+ [],
+ 'invalid',
+ ];
+ }
+
+ public function provideGetBackendModelByInputType(): Generator
+ {
+ yield 'color' => [
+ self::$backendModel['color'],
+ 'color',
+ ];
+ yield 'invalid' => [
+ null,
+ 'invalid',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/JsTrait.php b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/JsTrait.php
new file mode 100644
index 00000000000..cde6b0f4d33
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/JsTrait.php
@@ -0,0 +1,36 @@
+ [
+ [
+ 0 => 1,
+ 1 => 2,
+ 2 => 3,
+ 3 => 4,
+ ],
+ '1&2&3&4',
+ ];
+ yield 'w/ keys' => [
+ [
+ 1 => [],
+ 2 => [],
+ ],
+ '1=1&2=2',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/SalesTrait.php b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/SalesTrait.php
new file mode 100644
index 00000000000..10af4c36416
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Adminhtml/Helper/SalesTrait.php
@@ -0,0 +1,24 @@
+ [
+ '<a href="https://localhost">',
+ '',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Api/Model/UserTrait.php b/tests/unit/Traits/DataProvider/Mage/Api/Model/UserTrait.php
new file mode 100644
index 00000000000..9b5fa081951
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Api/Model/UserTrait.php
@@ -0,0 +1,121 @@
+ 'validuser',
+ 'getFirstname' => 'John',
+ 'getLastname' => 'Doe',
+ 'getEmail' => 'john.doe@example.com',
+ 'hasNewApiKey' => false,
+ 'getNewApiKey' => null,
+ 'hasApiKey' => true,
+ 'getApiKey' => 'validapikey123',
+ 'hasApiKeyConfirmation' => true,
+ 'getApiKeyConfirmation' => 'validapikey123',
+ 'userExists' => false,
+ ];
+
+ yield 'valid data' => [
+ true,
+ $validUser,
+ ];
+
+ $data = $validUser;
+ $data['getUsername'] = '';
+ yield 'missing username' => [
+ ['User Name is required field.'],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getFirstname'] = '';
+ yield 'missing firstname' => [
+ ['First Name is required field.'],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getLastname'] = '';
+ yield 'missing lastname' => [
+ ['Last Name is required field.'],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getEmail'] = '';
+ yield 'missing email' => [
+ [$errorInvalidEmail],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getEmail'] = 'invalid-email';
+ yield 'invalid email' => [
+ [$errorInvalidEmail],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getApiKey'] = '';
+ yield 'missing api key' => [
+ [
+ $errorLength,
+ $errorAlphaNumeric,
+ $errorIdentical,
+ ],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['getApiKeyConfirmation'] = '';
+ yield 'missing api confirm key' => [
+ [$errorIdentical],
+ $data,
+ ];
+
+ $data = $validUser;
+ $apiKey = '1234567';
+ $data['getApiKey'] = $apiKey;
+ $data['getApiKeyConfirmation'] = $apiKey;
+ yield 'numeric only api key' => [
+ [$errorAlphaNumeric],
+ $data,
+ ];
+
+ $data = $validUser;
+ $apiKey = 'abcdefg';
+ $data['getApiKey'] = $apiKey;
+ $data['getApiKeyConfirmation'] = $apiKey;
+ yield 'string only api key' => [
+ [$errorAlphaNumeric],
+ $data,
+ ];
+
+ $data = $validUser;
+ $data['userExists'] = true;
+ yield 'user exists' => [
+ ['A user with the same user name or email already exists.'],
+ $data,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php
index 939c93d4c86..43c9cfc5630 100644
--- a/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Catalog/CatalogTrait.php
@@ -1,16 +1,9 @@
[
+ [
+ '100',
+ ],
+ '100',
+ ];
+ yield 'test #2 w/ length' => [
+ [
+ '10',
+ '0',
+ ],
+ '100',
+ 2,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/Product/UrlTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/Product/UrlTrait.php
new file mode 100644
index 00000000000..fe4cb2a7f8a
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/Product/UrlTrait.php
@@ -0,0 +1,36 @@
+ [
+ '',
+ null,
+ ];
+ yield 'string' => [
+ 'string',
+ 'string',
+ ];
+ yield 'umlauts' => [
+ 'string with aou',
+ 'string with ÄÖÜ',
+ ];
+ yield 'at' => [
+ 'at',
+ '@',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/ProductTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/ProductTrait.php
new file mode 100644
index 00000000000..536bf6484da
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Catalog/Helper/ProductTrait.php
@@ -0,0 +1,52 @@
+ [
+ 2,
+ null,
+ ];
+ yield 'invalid' => [
+ 0,
+ 'invalid',
+ ];
+ yield 'multiselect' => [
+ 1,
+ 'multiselect',
+ ];
+ yield 'boolean' => [
+ 1,
+ 'boolean',
+ ];
+ }
+
+ public function provideGetAttributeBackendModelByInputType(): Generator
+ {
+ yield 'multiselect' => [
+ 'eav/entity_attribute_backend_array',
+ 'multiselect',
+ ];
+ }
+
+ public function provideGetAttributeSourceModelByInputType(): Generator
+ {
+ yield 'boolean' => [
+ 'eav/entity_attribute_source_boolean',
+ 'boolean',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php b/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php
index bf49b4ffa37..32d08d3081d 100644
--- a/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Catalog/Model/LocaleTrait.php
@@ -1,16 +1,9 @@
'999',
+ 'store_id' => '1',
+ 'url_key' => '',
+ 'name' => 'category',
+
+ ]);
+ $product = new Varien_Object([
+ 'id' => '999',
+ 'name' => 'product',
+ ]);
+
+ yield 'test exception' => [
+ 'Please specify either a category or a product, or both.',
+ 'request',
+ null,
+ null,
+ ];
+ yield 'request' => [
+ 'product.html',
+ 'request',
+ $product,
+ $category,
+ ];
+ // yield 'request w/o product' => [
+ // '-.html',
+ // 'request',
+ // null,
+ // $category,
+ // ];
+ yield 'target category' => [
+ 'catalog/category/view/id/999',
+ 'target',
+ null,
+ $category,
+ ];
+ yield 'target product' => [
+ 'catalog/product/view/id/999',
+ 'target',
+ $product,
+ $category,
+ ];
+ }
+
+ public function provideGetSluggerConfig(): Generator
+ {
+ yield 'de_DE' => [
+ ['de_DE' => [
+ '%' => 'prozent',
+ '&' => 'und',
+ ]],
+ 'de_DE',
+ ];
+ yield 'en_US' => [
+ ['en_US' => [
+ '%' => 'percent',
+ '&' => 'and',
+ ]],
+ 'en_US',
+ ];
+ yield 'fr_FR' => [
+ ['fr_FR' => [
+ '%' => 'pour cent',
+ '&' => 'et',
+ ]],
+ 'fr_FR',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Cms/Block/Widget/Page/LinkTrait.php b/tests/unit/Traits/DataProvider/Mage/Cms/Block/Widget/Page/LinkTrait.php
new file mode 100644
index 00000000000..5dd99e3d1b2
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Cms/Block/Widget/Page/LinkTrait.php
@@ -0,0 +1,151 @@
+ 'Custom Title',
+ 'custom_text' => 'Custom Text',
+ ];
+
+ public static $tests = [
+ 'empty' => 'empty',
+ 'href' => 'href is set',
+ 'no_data' => 'no data is set',
+ 'page_id' => 'page_id is set',
+ 'text' => 'text is set',
+ 'title' => 'title is set',
+ ];
+
+ public function provideGetHrefData(): Generator
+ {
+ $emptyData = [
+ 'href' => null,
+ 'page_id' => null,
+ ];
+
+ #$data = $emptyData;
+ #$data['page_id'] = 1;
+ #yield 'page_id is set' => [
+ # 'https://magento-lts.ddev.site/no-route',
+ # $data,
+ #];
+
+ $data = $emptyData;
+ $data['href'] = 'home';
+ yield self::$tests['href'] => [
+ 'home',
+ $data,
+ ];
+
+ yield self::$tests['empty'] => [
+ '',
+ $emptyData,
+ ];
+
+ yield self::$tests['no_data'] => [
+ '',
+ [],
+ ];
+ }
+
+ public function provideGetTitleData(): Generator
+ {
+ $emptyData = [
+ 'href' => null,
+ 'page_id' => null,
+ 'title' => null,
+ ];
+
+ $data = $emptyData;
+ $data['title'] = self::$defaults['custom_title'];
+ yield self::$tests['title'] => [
+ self::$defaults['custom_title'],
+ $data,
+ ];
+
+ $data = $emptyData;
+ $data['page_id'] = 1;
+ yield self::$tests['page_id'] => [
+ '404 Not Found 1',
+ $data,
+ ];
+
+ $data = $emptyData;
+ $data['href'] = 'home';
+ yield self::$tests['href'] => [
+ 'Home page',
+ $data,
+ ];
+
+ yield self::$tests['empty'] => [
+ '',
+ $emptyData,
+ ];
+
+ yield self::$tests['no_data'] => [
+ '',
+ [],
+ ];
+ }
+
+ public function provideGetAnchorTextData(): Generator
+ {
+ $emptyData = [
+ 'href' => null,
+ 'page_id' => null,
+ 'anchor_text' => null,
+ 'test' => 'Test',
+ ];
+
+ $data = $emptyData;
+ $data['anchor_text'] = self::$defaults['custom_text'];
+ yield self::$tests['text'] => [
+ self::$defaults['custom_text'],
+ $data,
+ ];
+
+ $data = $emptyData;
+ $data['title'] = self::$defaults['custom_title'];
+ yield self::$tests['title'] => [
+ self::$defaults['custom_title'],
+ $data,
+ ];
+
+ $data = $emptyData;
+ $data['page_id'] = 1;
+ yield self::$tests['page_id'] => [
+ '404 Not Found 1',
+ $data,
+ ];
+
+ $data = $emptyData;
+ $data['href'] = 'home';
+ yield self::$tests['href'] => [
+ 'Home page',
+ $data,
+ ];
+
+ yield self::$tests['empty'] => [
+ null,
+ $emptyData,
+ ];
+
+ yield self::$tests['no_data'] => [
+ null,
+ [],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
index 3807b8c4d9e..9b02b997d0e 100644
--- a/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
@@ -1,16 +1,9 @@
'John Doe',
+ 'email' => 'john.doe@example.com',
+ 'comment' => 'Test comment',
+ ];
+
+ $error = 'Unable to submit your request. Please, try again later';
+
+ #yield 'valid data' => [
+ # $validData,
+ # true,
+ # null,
+ #];
+
+ yield 'invalid form key' => [
+ $validData,
+ false,
+ 'Invalid Form Key. Please submit your request again.',
+ ];
+
+ $data = $validData;
+ $data['name'] = '';
+ yield 'missing name' => [
+ $data,
+ true,
+ $error,
+ ];
+
+ $data = $validData;
+ $data['email'] = '';
+ yield 'missing email' => [
+ $data,
+ true,
+ $error,
+ ];
+
+ $data = $validData;
+ $data['email'] = 'invalid-email';
+ yield 'invalid email' => [
+ $data,
+ true,
+ $error,
+ ];
+
+ $data = $validData;
+ $data['comment'] = '';
+ yield 'missing comment' => [
+ $data,
+ true,
+ $error,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php
index 26a1728fc50..41d6fbaf855 100644
--- a/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Core/CoreTrait.php
@@ -1,16 +1,9 @@
[
+ [],
+ [],
+ [],
+ ];
+ yield 'with base array' => [
+ ['a' => 1],
+ ['a' => 1],
+ [],
+ ];
+ yield 'with merge array' => [
+ ['b' => 1],
+ [],
+ ['b' => 1],
+ ];
+ yield 'with base & merge array' => [
+ [
+ 'a' => 1,
+ 'b' => 1,
+ ],
+ ['a' => 1],
+ ['b' => 1],
+ ];
+ yield 'with nested merge array' => [
+ [
+ 'a' => 1,
+ 'b' => [
+ 'c' => 1,
+ ],
+ ],
+ [],
+ [
+ 'a' => 1,
+ 'b' => [
+ 'c' => 1,
+ ],
+ ],
+ ];
+
+ yield 'with nested base & nested merge array' => [
+ [
+ 'a' => 1,
+ 'b' => [
+ 'c' => 1,
+ ],
+ ],
+ [
+ 'a' => [
+ 'b' => 1,
+ ],
+ ],
+ [
+ 'a' => 1,
+ 'b' => [
+ 'c' => 1,
+ ],
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Helper/DataTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Helper/DataTrait.php
new file mode 100644
index 00000000000..47a1b69aff6
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Helper/DataTrait.php
@@ -0,0 +1,94 @@
+getTimestamp();
+ $dateShort = date('n/j/Y', $date);
+ $dateLong = date('F j, Y', $date);
+ $dateShortTime = date('n/j/Y g:i A', $date);
+
+ yield 'null' => [
+ $dateShort,
+ null,
+ ];
+ yield 'empty date' => [
+ $dateShort,
+ '',
+ ];
+ yield 'string date' => [
+ $dateShort,
+ 'now',
+ ];
+ yield 'numeric date' => [
+ $dateShort,
+ '0',
+ ];
+ yield 'invalid date' => [
+ '',
+ 'invalid',
+ ];
+ yield 'invalid format' => [
+ (string) $date,
+ $date,
+ 'invalid',
+ ];
+ yield 'date short' => [
+ $dateShort,
+ $date,
+ ];
+ yield 'date long' => [
+ $dateLong,
+ $date,
+ 'long',
+ ];
+ // yield 'date short w/ time' => [
+ // $dateShortTime,
+ // $date,
+ // 'short',
+ // true,
+ // ];
+ }
+
+ public function provideRemoveAccents(): Generator
+ {
+ $string = 'Ae-Ä Oe-Ö Ue-Ü ae-ä oe-ö ue-ü';
+
+ yield 'german false' => [
+ 'Ae-A Oe-O Ue-U ae-a oe-o ue-u',
+ $string,
+ false,
+ ];
+ yield 'german true' => [
+ 'Ae-Ae Oe-Oe Ue-Ue ae-ae oe-oe ue-ue',
+ $string,
+ true,
+ ];
+ }
+
+ public function provideIsCountryInEUData(): Generator
+ {
+ yield 'DE true' => [
+ true,
+ 'DE',
+ ];
+ yield 'US false' => [
+ false,
+ 'US',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Helper/PurifierTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Helper/PurifierTrait.php
new file mode 100644
index 00000000000..5180c20265c
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Helper/PurifierTrait.php
@@ -0,0 +1,28 @@
+ [
+ [],
+ [],
+ ];
+ yield 'string' => [
+ '',
+ '',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Helper/UnserializeArray.php b/tests/unit/Traits/DataProvider/Mage/Core/Helper/UnserializeArray.php
new file mode 100644
index 00000000000..0ce267d293a
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Helper/UnserializeArray.php
@@ -0,0 +1,38 @@
+ [
+ $errorMessage,
+ null,
+ ];
+ yield 'empty string' => [
+ $errorMessage,
+ '',
+ ];
+ yield 'random string' => [
+ $errorMessage,
+ 'abc',
+ ];
+ yield 'valid' => [
+ ['key' => 'value'],
+ 'a:1:{s:3:"key";s:5:"value";}',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Helper/UrlTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Helper/UrlTrait.php
new file mode 100644
index 00000000000..f05afb73670
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Helper/UrlTrait.php
@@ -0,0 +1,117 @@
+ [
+ 'aHR0cDovLw,,',
+ null,
+ ];
+ yield 'base url' => [
+ 'aHR0cHM6Ly9leGFtcGxlLmNvbQ,,',
+ self::$testUrlBase,
+ ];
+ }
+
+ public function provideAddRequestParam(): Generator
+ {
+ yield 'int key' => [
+ self::$testUrlBase . '?',
+ self::$testUrlBase,
+ [0 => 'int'],
+ ];
+ yield 'int value' => [
+ self::$testUrlBase . '?int=0',
+ self::$testUrlBase,
+ ['int' => 0],
+ ];
+ yield 'null' => [
+ self::$testUrlBase . '?null',
+ self::$testUrlBase,
+ ['null' => null],
+ ];
+ yield 'string' => [
+ self::$testUrlParam,
+ self::$testUrlBase,
+ ['foo' => 'bar'],
+ ];
+ yield 'string extend' => [
+ self::$testUrlParams,
+ self::$testUrlParam,
+ ['BOO' => 'baz'],
+ ];
+ yield 'array' => [
+ self::$testUrlBase . '?key[]=subValue',
+ self::$testUrlBase,
+ ['key' => ['subKey' => 'subValue']],
+ ];
+ }
+
+ public function provideRemoveRequestParam(): Generator
+ {
+ yield 'remove #1' => [
+ self::$testUrlBase,
+ self::$testUrlParam,
+ 'foo',
+ ];
+ yield 'remove #2' => [
+ self::$testUrlParams,
+ self::$testUrlParams,
+ 'boo',
+ ];
+ yield 'remove #1 case sensitive' => [
+ self::$testUrlParam,
+ self::$testUrlParam,
+ 'FOO',
+ true,
+ ];
+ yield 'remove #2 case sensitive' => [
+ self::$testUrlParam,
+ self::$testUrlParams,
+ 'BOO',
+ true,
+ ];
+ yield 'not-exists' => [
+ self::$testUrlParams,
+ self::$testUrlParams,
+ 'not-exists',
+ ];
+ yield '___SID' => [
+ self::$testUrlSid1,
+ self::$testUrlSidBoth,
+ '___SID',
+ ];
+ yield 'SID' => [
+ self::$testUrlSid2,
+ self::$testUrlSidBoth,
+ 'SID',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Model/AppTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Model/AppTrait.php
new file mode 100644
index 00000000000..f86c1fc0cd1
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Model/AppTrait.php
@@ -0,0 +1,40 @@
+ [
+ new Mage_Core_Model_Store(),
+ ];
+ }
+
+ public function provideGetWebsite(): Generator
+ {
+ yield 'Mage_Core_Model_Website' => [
+ new Mage_Core_Model_Website(),
+ ];
+ }
+
+ public function provideGetGroup(): Generator
+ {
+ yield 'Mage_Core_Model_Store_Group' => [
+ new Mage_Core_Model_Store_Group(),
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Model/Email/Template/AbstractTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Model/Email/Template/AbstractTrait.php
new file mode 100644
index 00000000000..cdcdaf17726
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Model/Email/Template/AbstractTrait.php
@@ -0,0 +1,41 @@
+ [
+ true,
+ $_SERVER['TEST_ROOT'] . '/unit/fixtures/files/test.css',
+ 'css',
+ true,
+ ];
+ yield 'css file exists, but empty' => [
+ false,
+ $_SERVER['TEST_ROOT'] . '/unit/fixtures/files/test-empty.css',
+ 'css',
+ true,
+ ];
+ yield 'css file not exists' => [
+ false,
+ $_SERVER['TEST_ROOT'] . '/unit/fixtures/files/test.not-exist',
+ 'css',
+ false,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Model/LayoutTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Model/LayoutTrait.php
new file mode 100644
index 00000000000..a761c2b6acb
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Model/LayoutTrait.php
@@ -0,0 +1,35 @@
+ [
+ Mage_Cms_Block_Block::class,
+ true,
+ 'cms/block',
+ null,
+ [],
+ ];
+ yield 'not instance of Mage_Core_Block_Abstract' => [
+ false,
+ false,
+ 'rule/conditions',
+ null,
+ [],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Core/Model/SecurityTrait.php b/tests/unit/Traits/DataProvider/Mage/Core/Model/SecurityTrait.php
new file mode 100644
index 00000000000..ba97d791db3
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Core/Model/SecurityTrait.php
@@ -0,0 +1,47 @@
+string';
+
+ public function provideHtmlEscapedStringAsStringData(): Generator
+ {
+ yield 'tags null' => [
+ 'This is a bold <b>string</b>',
+ self::$testString,
+ null,
+ ];
+ yield 'tags array' => [
+ self::$testString,
+ self::$testString,
+ ['b'],
+ ];
+ }
+
+ public function provideHtmlEscapedStringGetUnescapedValueData(): Generator
+ {
+ yield 'tags null' => [
+ self::$testString,
+ self::$testString,
+ null,
+ ];
+ yield 'tags array' => [
+ self::$testString,
+ self::$testString,
+ ['some-invalid-value'],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Customer/CustomerTrait.php b/tests/unit/Traits/DataProvider/Mage/Customer/CustomerTrait.php
new file mode 100644
index 00000000000..43db8f21308
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Customer/CustomerTrait.php
@@ -0,0 +1,123 @@
+ 'John',
+ 'getLastname' => 'Doe',
+ 'getEmail' => 'john.doe@example.com',
+ 'getPassword' => 'validpassword123',
+ 'getPasswordConfirmation' => 'validpassword123',
+ 'getDob' => '1980-01-01',
+ 'getTaxvat' => '123456789',
+ 'getGender' => '1',
+ 'shouldValidateDob' => false,
+ 'shouldValidateTaxvat' => false,
+ 'shouldValidateGender' => false,
+ ];
+
+ yield 'valid data' => [
+ true,
+ $validCustomer,
+ ];
+
+ $data = $validCustomer;
+ $data['getFirstname'] = '';
+ yield 'missing firstname' => [
+ ['The first name cannot be empty.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getLastname'] = '';
+ yield 'missing lastname' => [
+ ['The last name cannot be empty.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getEmail'] = '';
+ yield 'missing email' => [
+ ['Invalid email address "".'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getEmail'] = 'invalid-email';
+ yield 'invalid email' => [
+ ['Invalid email address "invalid-email".'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getPasswordConfirmation'] = 'differentpassword';
+ yield 'passwords do not match' => [
+ ['Please make sure your passwords match.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $password = '123';
+ $data['getPassword'] = $password;
+ $data['getPasswordConfirmation'] = $password;
+ yield 'passwords to short' => [
+ ['The minimum password length is 7'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $password = str_repeat('x', 257);
+ $data['getPassword'] = $password;
+ $data['getPasswordConfirmation'] = $password;
+ yield 'passwords to long' => [
+ ['Please enter a password with at most 256 characters.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getDob'] = '';
+ $data['shouldValidateDob'] = true;
+ yield 'missing dob' => [
+ true, # ['The Date of Birth is required.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getDob'] = 'abc';
+ $data['shouldValidateDob'] = true;
+ yield 'invalid dob' => [
+ true, # ['This value is not a valid date.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getTaxvat'] = '';
+ $data['shouldValidateTaxvat'] = true;
+ yield 'missing taxvat' => [
+ true, # ['The TAX/VAT number is required.'],
+ $data,
+ ];
+
+ $data = $validCustomer;
+ $data['getGender'] = '';
+ $data['shouldValidateGender'] = true;
+ yield 'missing gender' => [
+ true, # ['Gender is required.'],
+ $data,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Directory/DirectoryTrait.php b/tests/unit/Traits/DataProvider/Mage/Directory/DirectoryTrait.php
new file mode 100644
index 00000000000..ef836421e29
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Directory/DirectoryTrait.php
@@ -0,0 +1,59 @@
+ [
+ '["HK","IE","MO","PA"]',
+ true,
+ ];
+ yield 'as array' => [
+ [
+ 0 => 'HK',
+ 1 => 'IE',
+ 2 => 'MO',
+ 3 => 'PA',
+ ],
+ false,
+ ];
+ }
+
+
+ public function provideGetCountriesWithStatesRequired(): Generator
+ {
+ yield 'as json' => [
+ '["AT","CA","CH","DE","EE","ES","FI","FR","LT","LV","RO","US"]',
+ true,
+ ];
+ yield 'as array' => [
+ [
+ 0 => 'AT',
+ 1 => 'CA',
+ 2 => 'CH',
+ 3 => 'DE',
+ 4 => 'EE',
+ 5 => 'ES',
+ 6 => 'FI',
+ 7 => 'FR',
+ 8 => 'LT',
+ 9 => 'LV',
+ 10 => 'RO',
+ 11 => 'US',
+ ],
+ false,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php b/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php
index a1c75389603..44ae9ee47d6 100644
--- a/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Downloadable/DownloadableTrait.php
@@ -1,16 +1,9 @@
[
+ Subject::TYPE_ADDRESS_ITEM,
+ $entity,
+ ];
+ yield Subject::TYPE_ITEM => [
+ Subject::TYPE_ITEM,
+ $entity->setData('product', new Mage_Catalog_Model_Product()),
+ ];
+ yield Subject::TYPE_ITEMS => [
+ Subject::TYPE_ITEMS,
+ $entity,
+ ];
+ yield Subject::TYPE_ORDER => [
+ Subject::TYPE_ORDER,
+ $entity,
+ ];
+ yield Subject::TYPE_ORDER_ITEM => [
+ Subject::TYPE_ORDER_ITEM,
+ $entity,
+ ];
+ yield 'invalid type' => [
+ 'quote',
+ $entity,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Index/Block/Adminhtml/Process/GridTrait.php b/tests/unit/Traits/DataProvider/Mage/Index/Block/Adminhtml/Process/GridTrait.php
new file mode 100644
index 00000000000..887cd796f3b
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Index/Block/Adminhtml/Process/GridTrait.php
@@ -0,0 +1,49 @@
+ [
+ Mage_Adminhtml_Block_Widget_Grid::CSS_SEVERITY_NOTICE,
+ Mage_Index_Model_Process::STATUS_PENDING,
+ ];
+
+ yield 'working' => [
+ Mage_Adminhtml_Block_Widget_Grid::CSS_SEVERITY_MAJOR,
+ Mage_Index_Model_Process::STATUS_RUNNING,
+ ];
+
+ yield 'require reindex' => [
+ Mage_Adminhtml_Block_Widget_Grid::CSS_SEVERITY_CRITICAL,
+ Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX,
+ ];
+ }
+
+ public function provideDecorateUpdateRequiredData(): Generator
+ {
+ yield 'no' => [
+ Mage_Adminhtml_Block_Widget_Grid::CSS_SEVERITY_NOTICE,
+ 0,
+ ];
+
+ yield 'yes' => [
+ Mage_Adminhtml_Block_Widget_Grid::CSS_SEVERITY_CRITICAL,
+ 1,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Log/Helper/DataTrait.php b/tests/unit/Traits/DataProvider/Mage/Log/Helper/DataTrait.php
new file mode 100644
index 00000000000..c80ef3e2b1d
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Log/Helper/DataTrait.php
@@ -0,0 +1,28 @@
+ [
+ true,
+ 'valid.log',
+ ];
+ yield 'invalid' => [
+ false,
+ 'invalid.file',
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Log/Model/CustomerTrait.php b/tests/unit/Traits/DataProvider/Mage/Log/Model/CustomerTrait.php
new file mode 100644
index 00000000000..0f827e93def
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Log/Model/CustomerTrait.php
@@ -0,0 +1,32 @@
+ [
+ true,
+ [
+ 'getLoginAt' => true,
+ ],
+ ];
+ yield 'invalid' => [
+ false,
+ [
+ 'getLoginAt' => false,
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php b/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php
index 8004b58e917..dfde13394c9 100644
--- a/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Reports/ReportsTrait.php
@@ -1,16 +1,9 @@
[
- 0,
+ 'No date part in \'\' found.',
'',
self::$dateFirstDay,
Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY,
];
- if (!defined('DATA_MAY_CHANGED')) {
- yield $prefix . 'no to' => [
- 0,
- self::$dateFirstDay,
- '',
- Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY,
- ];
- }
+ yield $prefix . 'no to' => [
+ 'No date part in \'\' found.',
+ self::$dateFirstDay,
+ '',
+ Mage_Reports_Helper_Data::REPORT_PERIOD_TYPE_DAY,
+ ];
yield $prefix . 'same day' => [
1,
diff --git a/tests/unit/Traits/DataProvider/Mage/Review/ReviewTrait.php b/tests/unit/Traits/DataProvider/Mage/Review/ReviewTrait.php
new file mode 100644
index 00000000000..724aa0ccb57
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Review/ReviewTrait.php
@@ -0,0 +1,54 @@
+ 'Great product',
+ 'getDetail' => 'I really liked this product.',
+ 'getNickname' => 'JohnDoe',
+ 'getCustomerId' => 1,
+ 'getEntityId' => 1,
+ 'getStoreId' => 1,
+ ];
+
+ yield 'valid data' => [
+ true,
+ $validReview,
+ ];
+
+ $data = $validReview;
+ $data['getTitle'] = '';
+ yield 'missing title' => [
+ ['Review summary can\'t be empty'],
+ $data,
+ ];
+
+ $data = $validReview;
+ $data['getDetail'] = '';
+ yield 'missing detail' => [
+ ['Review can\'t be empty'],
+ $data,
+ ];
+
+ $data = $validReview;
+ $data['getNickname'] = '';
+ yield 'missing nickname' => [
+ ['Nickname can\'t be empty'],
+ $data,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php b/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php
index 9aeb560c67d..475a8881fe5 100644
--- a/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Rule/RuleTrait.php
@@ -1,16 +1,9 @@
[
[
- 0 => 'End Date must be greater than Start Date.',
+ 'End Date must be greater than Start Date.',
],
[
'from_date' => '2',
@@ -52,7 +45,7 @@ public function provideValidateData(): Generator
];
yield 'object with empty website ids' => [
[
- 0 => 'Websites must be specified.',
+ 'Websites must be specified.',
],
[
'website_ids' => '',
@@ -66,7 +59,7 @@ public function provideValidateData(): Generator
];
yield 'object with empty customer group ids' => [
[
- 0 => 'Customer Groups must be specified.',
+ 'Customer Groups must be specified.',
],
[
'customer_group_ids' => '',
diff --git a/tests/unit/Traits/DataProvider/Mage/Sitemap/SitemapTrait.php b/tests/unit/Traits/DataProvider/Mage/Sitemap/SitemapTrait.php
new file mode 100644
index 00000000000..fe019ce3ac2
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Sitemap/SitemapTrait.php
@@ -0,0 +1,35 @@
+ [
+ [
+ 'getSitemapFilename' => 'text.xml',
+ ],
+ ];
+ }
+
+ public function provideGenerateXmlData(): Generator
+ {
+ yield 'default' => [
+ [
+ 'isDeleted' => true, # do not save to DB
+ 'getSitemapFilename' => '???phpunit.sitemap.xml',
+ ],
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Tax/TaxTrait.php b/tests/unit/Traits/DataProvider/Mage/Tax/TaxTrait.php
new file mode 100644
index 00000000000..2a0e077f912
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Tax/TaxTrait.php
@@ -0,0 +1,40 @@
+ [
+ 'Incl. Tax',
+ true,
+ ];
+ yield 'false' => [
+ 'Excl. Tax',
+ false,
+ ];
+ }
+
+ public function provideGetIncExcTaxLabel(): Generator
+ {
+ yield 'true' => [
+ '(Incl. Tax)',
+ true,
+ ];
+ yield 'false' => [
+ '(Excl. Tax)',
+ false,
+ ];
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php b/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php
index f18ca435a37..928244d24ad 100644
--- a/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Uploader/UploaderTrait.php
@@ -1,16 +1,9 @@
[
+ '1M',
+ [
+ 'getPostMaxSize' => '1G',
+ 'getUploadMaxSize' => '1M',
+ ],
+ ];
+ yield 'larger upload max size' => [
+ '1M',
+ [
+ 'getPostMaxSize' => '1M',
+ 'getUploadMaxSize' => '1G',
+ ],
+ ];
+ }
+
public function provideGetDataMaxSizeInBytesData(): Generator
{
yield 'no unit' => [
1024,
- '1024',
+ [
+ 'getDataMaxSize' => '1024',
+ ],
];
yield 'kilobyte' => [
1024,
- '1K',
+ [
+ 'getDataMaxSize' => '1K',
+ ],
];
yield 'megabyte' => [
1048576,
- '1M',
+ [
+ 'getDataMaxSize' => '1M',
+ ],
];
yield 'gigabyte' => [
1073741824,
- '1G',
+ [
+ 'getDataMaxSize' => '1G',
+ ],
];
}
}
diff --git a/tests/unit/Varien/Data/Form/Filter/DateTest.php b/tests/unit/Varien/Data/Form/Filter/DateTest.php
index ef118d79732..f84a004ca1a 100644
--- a/tests/unit/Varien/Data/Form/Filter/DateTest.php
+++ b/tests/unit/Varien/Data/Form/Filter/DateTest.php
@@ -39,11 +39,11 @@ public function setUp(): void
public function testInputFilter(?string $expectedResult, ?string $value): void
{
try {
- $this->assertSame($expectedResult, $this->subject->inputFilter($value));
+ static::assertSame($expectedResult, $this->subject->inputFilter($value));
} catch (Throwable $e) {
// PHP7: bcsub(): bcmath function argument is not well-formed
// PHP8: bcsub(): Argument #1 ($num1) is not well-formed
- $this->assertStringStartsWith((string) $expectedResult, $e->getMessage());
+ static::assertStringStartsWith((string) $expectedResult, $e->getMessage());
}
}
diff --git a/tests/unit/Varien/Data/Form/Filter/DatetimeTest.php b/tests/unit/Varien/Data/Form/Filter/DatetimeTest.php
index 77c35961022..30c68978de7 100644
--- a/tests/unit/Varien/Data/Form/Filter/DatetimeTest.php
+++ b/tests/unit/Varien/Data/Form/Filter/DatetimeTest.php
@@ -39,11 +39,11 @@ public function setUp(): void
public function testInputFilter(?string $expectedResult, ?string $value): void
{
try {
- $this->assertSame($expectedResult, $this->subject->inputFilter($value));
+ static::assertSame($expectedResult, $this->subject->inputFilter($value));
} catch (Throwable $e) {
// PHP7: bcsub(): bcmath function argument is not well-formed
// PHP8: bcsub(): Argument #1 ($num1) is not well-formed
- $this->assertStringStartsWith((string) $expectedResult, $e->getMessage());
+ static::assertStringStartsWith((string) $expectedResult, $e->getMessage());
}
}
diff --git a/tests/unit/Varien/Db/Adapter/Pdo/MysqlTest.php b/tests/unit/Varien/Db/Adapter/Pdo/MysqlTest.php
index 34a4858ab39..0f70d600885 100644
--- a/tests/unit/Varien/Db/Adapter/Pdo/MysqlTest.php
+++ b/tests/unit/Varien/Db/Adapter/Pdo/MysqlTest.php
@@ -60,10 +60,10 @@ public function testGetHostInfoWithUnixSocket(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, $fakeSocket);
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_UNIX_SOCKET, $hostInfo->getAddressType());
- $this->assertSame($fakeSocket, $hostInfo->getUnixSocket());
- $this->assertNull($hostInfo->getHostName());
- $this->assertNull($hostInfo->getPort());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_UNIX_SOCKET, $hostInfo->getAddressType());
+ static::assertSame($fakeSocket, $hostInfo->getUnixSocket());
+ static::assertNull($hostInfo->getHostName());
+ static::assertNull($hostInfo->getPort());
}
/**
@@ -77,10 +77,10 @@ public function testGetHostInfoWithIpv4Address(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, '192.168.1.1:3306');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV4_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('192.168.1.1', $hostInfo->getHostName());
- $this->assertSame('3306', $hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV4_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('192.168.1.1', $hostInfo->getHostName());
+ static::assertSame('3306', $hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -94,10 +94,10 @@ public function testGetHostInfoWithIpv4AddressWithoutPort(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, '192.168.1.1');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV4_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('192.168.1.1', $hostInfo->getHostName());
- $this->assertNull($hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV4_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('192.168.1.1', $hostInfo->getHostName());
+ static::assertNull($hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -111,10 +111,10 @@ public function testGetHostInfoWithHostname(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, 'db.example.com:3306');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_HOSTNAME, $hostInfo->getAddressType());
- $this->assertSame('db.example.com', $hostInfo->getHostName());
- $this->assertSame('3306', $hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_HOSTNAME, $hostInfo->getAddressType());
+ static::assertSame('db.example.com', $hostInfo->getHostName());
+ static::assertSame('3306', $hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -128,10 +128,10 @@ public function testGetHostInfoWithHostnameWithoutPort(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, 'db.example.com');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_HOSTNAME, $hostInfo->getAddressType());
- $this->assertSame('db.example.com', $hostInfo->getHostName());
- $this->assertNull($hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_HOSTNAME, $hostInfo->getAddressType());
+ static::assertSame('db.example.com', $hostInfo->getHostName());
+ static::assertNull($hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -145,10 +145,10 @@ public function testGetHostInfoWithIpv6Address(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, '[2001:db8::1]:3306');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('2001:db8::1', $hostInfo->getHostName());
- $this->assertSame('3306', $hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('2001:db8::1', $hostInfo->getHostName());
+ static::assertSame('3306', $hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -162,10 +162,10 @@ public function testGetHostInfoWithIpv6AddressWithoutPort(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, '2001:db8::1');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('2001:db8::1', $hostInfo->getHostName());
- $this->assertNull($hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('2001:db8::1', $hostInfo->getHostName());
+ static::assertNull($hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -179,10 +179,10 @@ public function testGetHostInfoWithIpv6AddressWithZoneId(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, '[fe80::1%eth0]:3306');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('fe80::1%eth0', $hostInfo->getHostName());
- $this->assertSame('3306', $hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('fe80::1%eth0', $hostInfo->getHostName());
+ static::assertSame('3306', $hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
/**
@@ -196,9 +196,9 @@ public function testGetHostInfoWithIpv6AddressWithZoneIdWithoutPort(): void
/** @var Varien_Object $hostInfo */
$hostInfo = $method->invoke($this->adapter, 'fe80::1%eth0');
- $this->assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
- $this->assertSame('fe80::1%eth0', $hostInfo->getHostName());
- $this->assertNull($hostInfo->getPort());
- $this->assertNull($hostInfo->getUnixSocket());
+ static::assertSame(Varien_Db_Adapter_Pdo_Mysql::ADDRESS_TYPE_IPV6_ADDRESS, $hostInfo->getAddressType());
+ static::assertSame('fe80::1%eth0', $hostInfo->getHostName());
+ static::assertNull($hostInfo->getPort());
+ static::assertNull($hostInfo->getUnixSocket());
}
}
diff --git a/tests/unit/Varien/ObjectTest.php b/tests/unit/Varien/ObjectTest.php
index 919c38fb661..76997f0bfdd 100644
--- a/tests/unit/Varien/ObjectTest.php
+++ b/tests/unit/Varien/ObjectTest.php
@@ -44,7 +44,7 @@ public function setUp(): void
public function testGetData($expectedResult, $setKey, $setValue, string $key, $index = null): void
{
$this->subject->setData($setKey, $setValue);
- $this->assertSame($expectedResult, $this->subject->getData($key, $index));
+ static::assertSame($expectedResult, $this->subject->getData($key, $index));
}
public function provideGetDataData(): Generator
@@ -176,7 +176,7 @@ public function testToString(string $expectedResult, string $format): void
$this->subject->setString2('two');
$this->subject->setString3('three');
- $this->assertSame($expectedResult, $this->subject->toString($format));
+ static::assertSame($expectedResult, $this->subject->toString($format));
}
public function provideToString(): Generator
@@ -200,7 +200,7 @@ public function provideToString(): Generator
*/
public function testGetSetUnsData(): void
{
- $this->assertTrue($this->subject->isEmpty());
+ static::assertTrue($this->subject->isEmpty());
$this->subject->setABC('abc');
$this->subject->setData('efg', 'efg');
$this->subject->set123('123');
@@ -209,46 +209,46 @@ public function testGetSetUnsData(): void
$this->subject->setData('key_a_2nd', 'value_a_2nd');
$this->subject->setKeyA3rd('value_a_3rd');
$this->subject->setData('left', 'over');
- $this->assertFalse($this->subject->isEmpty());
+ static::assertFalse($this->subject->isEmpty());
- $this->assertSame('abc', $this->subject->getData('a_b_c'));
- $this->assertSame('abc', $this->subject->getABC());
+ static::assertSame('abc', $this->subject->getData('a_b_c'));
+ static::assertSame('abc', $this->subject->getABC());
$this->subject->unsetData('a_b_c');
- $this->assertSame('efg', $this->subject->getData('efg'));
- $this->assertSame('efg', $this->subject->getEfg());
+ static::assertSame('efg', $this->subject->getData('efg'));
+ static::assertSame('efg', $this->subject->getEfg());
$this->subject->unsEfg();
- $this->assertSame('123', $this->subject->getData('123'));
- $this->assertSame('123', $this->subject->get123());
+ static::assertSame('123', $this->subject->getData('123'));
+ static::assertSame('123', $this->subject->get123());
$this->subject->uns123();
$this->subject->unsetData('345');
- $this->assertSame('value_a_first', $this->subject->getData('key_a_first'));
- $this->assertSame('value_a_first', $this->subject->getKeyAFirst());
+ static::assertSame('value_a_first', $this->subject->getData('key_a_first'));
+ static::assertSame('value_a_first', $this->subject->getKeyAFirst());
$this->subject->unsetData('key_a_first');
- $this->assertSame('value_a_2nd', $this->subject->getData('key_a_2nd'));
- $this->assertSame('value_a_2nd', $this->subject->getKeyA_2nd());
+ static::assertSame('value_a_2nd', $this->subject->getData('key_a_2nd'));
+ static::assertSame('value_a_2nd', $this->subject->getKeyA_2nd());
$this->subject->unsetData('key_a_2nd');
- $this->assertSame('value_a_3rd', $this->subject->getData('key_a3rd'));
- $this->assertSame('value_a_3rd', $this->subject->getKeyA3rd());
+ static::assertSame('value_a_3rd', $this->subject->getData('key_a3rd'));
+ static::assertSame('value_a_3rd', $this->subject->getKeyA3rd());
$this->subject->unsetData('key_a3rd');
- $this->assertSame(['left' => 'over'], $this->subject->getData());
+ static::assertSame(['left' => 'over'], $this->subject->getData());
$this->subject->unsetData();
- $this->assertSame([], $this->subject->getData());
- $this->assertTrue($this->subject->isEmpty());
+ static::assertSame([], $this->subject->getData());
+ static::assertTrue($this->subject->isEmpty());
try {
/** @phpstan-ignore-next-line */
$this->subject->notData();
- $this->fail('Invalid __call');
+ static::fail('Invalid __call');
} catch (Varien_Exception $exception) {
- $this->assertStringStartsWith('Invalid method', $exception->getMessage());
+ static::assertStringStartsWith('Invalid method', $exception->getMessage());
}
}
@@ -257,14 +257,14 @@ public function testGetSetUnsData(): void
*/
public function testOffset(): void
{
- $this->assertFalse($this->subject->offsetExists('off'));
+ static::assertFalse($this->subject->offsetExists('off'));
$this->subject->offsetSet('off', 'set');
- $this->assertTrue($this->subject->offsetExists('off'));
- $this->assertSame('set', $this->subject->offsetGet('off'));
- $this->assertNull($this->subject->offsetGet('not-exists'));
+ static::assertTrue($this->subject->offsetExists('off'));
+ static::assertSame('set', $this->subject->offsetGet('off'));
+ static::assertNull($this->subject->offsetGet('not-exists'));
$this->subject->offsetUnset('off');
- $this->assertFalse($this->subject->offsetExists('off'));
+ static::assertFalse($this->subject->offsetExists('off'));
}
}
diff --git a/tests/unit/fixtures/files/test-empty.css b/tests/unit/fixtures/files/test-empty.css
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/tests/unit/fixtures/files/test.css b/tests/unit/fixtures/files/test.css
new file mode 100644
index 00000000000..0043c3bd95c
--- /dev/null
+++ b/tests/unit/fixtures/files/test.css
@@ -0,0 +1 @@
+/* test */