20250505
[*: ActionStateMessageModel] улучшена реализация интерфейса ISerializable. [*: ActionState] класс разбит на множество трейтов для более структурированности. [*: ActionState] улучшена реализация интерфейса ISerializable. [*: ActionState] класс внутреннего хранилища сообщений изменён на ObjectArray. [*: ActionState] улучшена реализация метода Count. [*: ActionState] улучшены реализации методов HasInfos, HasWarnings, HasErrors, IsSuccess, GetStringMessages и Clear. [*: ActionState] возвращаемое значение метода GetMessages заменено на ObjectArray.
This commit is contained in:
		
							
								
								
									
										54
									
								
								tests/classes/ActionStateTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								tests/classes/ActionStateTest.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| <?php | ||||
|  | ||||
| namespace goodboyalex\php_components_pack\tests\classes; | ||||
|  | ||||
| use goodboyalex\php_components_pack\classes\ActionState; | ||||
| use goodboyalex\php_components_pack\enums\MessageType; | ||||
| use goodboyalex\php_components_pack\models\ActionStateMessageModel; | ||||
| use PHPUnit\Framework\TestCase; | ||||
|  | ||||
| class ActionStateTest extends TestCase | ||||
| { | ||||
|     public function testActionState (): void | ||||
|     { | ||||
|         $this->PrepareForTest(); | ||||
|         $actionState = new ActionState('123'); | ||||
|  | ||||
|         $this->assertEquals('123', $actionState->Value); | ||||
|  | ||||
|         $actionState->AddError("Non critical error"); | ||||
|         $actionState->AddCritical("Critical error"); | ||||
|         $actionState->AddWarning("Its a warning"); | ||||
|  | ||||
|         $this->assertTrue($actionState->HasErrors()); | ||||
|         $this->assertTrue($actionState->HasErrors(true)); | ||||
|         $this->assertTrue($actionState->HasWarnings()); | ||||
|         $this->assertFalse($actionState->IsSuccess()); | ||||
|  | ||||
|         $messages = $actionState->GetMessages(ActionState::GET_STRING_ERROR_ONLY()); | ||||
|         $this->assertEquals(2, $messages->Count()); | ||||
|  | ||||
|         $this->assertEquals("Non critical error", | ||||
|             $actionState->GetStringMessages(fn (ActionStateMessageModel $message) | ||||
|                 => $message->MessageType | ||||
|                 == MessageType::Error | ||||
|                 && !$message->IsCritical)); | ||||
|  | ||||
|         $actionState2 = new ActionState('321'); | ||||
|  | ||||
|         $actionState2->AddState($actionState); | ||||
|  | ||||
|         $this->assertEquals(3, $actionState2->Count(ActionState::GET_STRING_ALL())); | ||||
|         $this->assertEquals('123', $actionState2->Value); | ||||
|     } | ||||
|  | ||||
|     private function PrepareForTest (): void | ||||
|     { | ||||
|         require_once __DIR__ . '/../../sources/classes/ActionState.php'; | ||||
|         require_once __DIR__ . '/../../sources/traits/ActionState/ActionStateAddTrait.php'; | ||||
|         require_once __DIR__ . '/../../sources/traits/ActionState/ActionStateGetTrait.php'; | ||||
|         require_once __DIR__ . '/../../sources/traits/ActionState/ActionStateHasTrait.php'; | ||||
|         require_once __DIR__ . '/../../sources/traits/ActionState/ActionStateStaticTrait.php'; | ||||
|         require_once __DIR__ . '/../../sources/enums/MessageType.php'; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user