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