20250711 1.1.1 Beta 3
This commit is contained in:
71
tests/extensions/TypeExtensionTest.php
Normal file
71
tests/extensions/TypeExtensionTest.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\tests\extensions;
|
||||
|
||||
use goodboyalex\php_components_pack\extensions\GUIDExtension;
|
||||
use goodboyalex\php_components_pack\extensions\TypeExtension;
|
||||
use goodboyalex\php_components_pack\tests\data\MenuCssClassModel;
|
||||
use goodboyalex\php_components_pack\tests\data\MenuItemModel;
|
||||
use goodboyalex\php_components_pack\tests\data\MenuItems;
|
||||
use goodboyalex\php_components_pack\tests\data\MenuModel;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class TypeExtensionTest extends TestCase
|
||||
{
|
||||
public function testFromArray ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function testToArray ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$menu = new MenuModel();
|
||||
$menu->Id = GUIDExtension::Generate();
|
||||
$menu->Name = 'Menu';
|
||||
$menu->Description = 'Description';
|
||||
$menu->AllowSubMenu = true;
|
||||
$menu->Css = new MenuCssClassModel();
|
||||
$menu->Css->MenuClass = "menuClass";
|
||||
$menu->Css->ItemClass = "itemClass";
|
||||
$menu->Css->SubItemClass = "subItemClass";
|
||||
$menu->Css->ItemSubMenuClass = "itemSubMenuClass";
|
||||
|
||||
$menuItem1 = new MenuItemModel();
|
||||
$menuItem1->Id = GUIDExtension::Generate();
|
||||
$menuItem1->Name = 'MenuItem1';
|
||||
$menuItem1->Description = 'Description';
|
||||
$menuItem1->Order = 1;
|
||||
$menuItem1->ParentId = GUIDExtension::GUIDEmpty;
|
||||
$menuItem1->URL = 'https://www.google.com';
|
||||
$menu->Items->AddItem($menuItem1);
|
||||
$menuItem2 = new MenuItemModel();
|
||||
$menuItem2->Id = GUIDExtension::Generate();
|
||||
$menuItem2->Name = 'MenuItem2';
|
||||
$menuItem2->Description = 'Description';
|
||||
$menuItem2->ParentId = $menuItem1->Id;
|
||||
$menuItem2->Order = 1;
|
||||
$menuItem2->URL = 'https://www.google.ru';
|
||||
$menu->Items->AddItem($menuItem2);
|
||||
|
||||
$closure = fn (object $class) => $class::class == MenuItems::class ? $class->Serialize()
|
||||
: TypeExtension::ToArray($class, TypeExtension::DEFAULT_TO_ARRAY_ON_CLASS());
|
||||
|
||||
$array = TypeExtension::ToArray($menu, $closure);
|
||||
|
||||
file_put_contents(__DIR__ . "/class.txt", json_encode($array, JSON_PRETTY_PRINT));
|
||||
var_dump($array);
|
||||
die();
|
||||
}
|
||||
|
||||
private function PrepareForTest (): void
|
||||
{
|
||||
require_once __DIR__ . '/../../sources/exceptions/TypeException.php';
|
||||
require_once __DIR__ . '/../../sources/extensions/TypeExtension.php';
|
||||
require_once __DIR__ . '/../data/MenuItemModel.php';
|
||||
require_once __DIR__ . '/../data/MenuCssClassModel.php';
|
||||
require_once __DIR__ . '/../data/MenuItems.php';
|
||||
require_once __DIR__ . '/../data/MenuModel.php';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user