diff --git a/app/Models/Validation/Messages/Factories/UsernameMessageByNameFactory.php b/app/Models/Validation/Messages/Factories/UsernameMessageByNameFactory.php new file mode 100644 index 0000000..c244080 --- /dev/null +++ b/app/Models/Validation/Messages/Factories/UsernameMessageByNameFactory.php @@ -0,0 +1,18 @@ + "A user with the username is valid.", + 'not_found' => "A user with the username does not exist!!!", + 'invalid_name' => "The username is invalid, please, check that you are registered or signed in!!!", + ]; + } +} + diff --git a/app/Models/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactory.php b/app/Models/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactory.php new file mode 100644 index 0000000..7cde6e9 --- /dev/null +++ b/app/Models/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactory.php @@ -0,0 +1,26 @@ +setMessages((new UsernameMessageByNameFactory())->create()); + + $this->setName($name); + } + + public function getValidatorByName(InformativeValidator $okValidator): Validator + { + return new UserValidatorByMatrixUserName($this->name, $okValidator); + } +} + diff --git a/tests/Feature/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactoryTest.php b/tests/Feature/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactoryTest.php new file mode 100644 index 0000000..f296136 --- /dev/null +++ b/tests/Feature/Validation/Validators/Informative/Factories/UserInformativeValidatorByMatrixUserNameFactoryTest.php @@ -0,0 +1,47 @@ + [ + 'name' => '@test:test.com', + 'key' => 'ok', + 'message' => 'A user with the username is valid.', + 'isValid' => true, + ], + 'Not Found Case' => [ + 'name' => '@kostia:test.com', + 'key' => 'error', + 'message' => 'A user with the username does not exist!!!', + 'isValid' => false, + ], + 'Invalid Case' => [ + 'name' => '', + 'key' => 'error', + 'message' => 'The username is invalid, please, check that you are registered or signed in!!!', + 'isValid' => false, + ], + ]; + } + + /** + * @dataProvider dataProvider + */ + public function testValidatorFactory(string $name, string $key, string $message, bool $isValid): void + { + $factory = new UserInformativeValidatorByMatrixUserNameFactory($name); + $validator = $factory->create(); + + $this->assertEquals($validator->getMessage(), $message); + $this->assertEquals($validator->getOkStatus(), [$key => $message]); + $this->assertEquals($validator->isValid(), $isValid); + } +} +