Refactor to use UserInformativeValidatorByMatrixUserNameFactory.
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
				
					
				
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
							parent
							
								
									85bd79e59c
								
							
						
					
					
						commit
						5c40bc6bf3
					
				@ -1,20 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace App\Models\Validation\Messages;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Models\Validation\Messages\BaseMessages;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class UserMessagesFactory
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    protected array $messages = [
 | 
					 | 
				
			||||||
        'found' => 'A user with the username is valid.',
 | 
					 | 
				
			||||||
        'not_found' => 'A user with the username does not exist!!!',
 | 
					 | 
				
			||||||
        'invalid_name' => 'The username is empty, please, write username!!!',
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function create()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return new BaseMessages($this->messages);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -1,18 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace App\Models\Validation;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Models\Validation\ModelValidationByName;
 | 
					 | 
				
			||||||
use App\Models\Validation\Messages\UserMessagesFactory;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class UserValidationByMatrixUsername extends ModelValidationByName
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function __construct(string $name)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        parent::__construct(
 | 
					 | 
				
			||||||
            $name,
 | 
					 | 
				
			||||||
            'App\Models\User',
 | 
					 | 
				
			||||||
            (new UserMessagesFactory())->create(),
 | 
					 | 
				
			||||||
        );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,45 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Tests\Feature;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Tests\TestCase;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Models\Validation\UserValidationByMatrixUsername;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class UserValidationTest extends TestCase
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public function dataProvider() {
 | 
					 | 
				
			||||||
        return [
 | 
					 | 
				
			||||||
            'Invalid Case' => [
 | 
					 | 
				
			||||||
                'name' => '',
 | 
					 | 
				
			||||||
                'key' => 'error',
 | 
					 | 
				
			||||||
                'message' =>  'The username is empty, please, write username!!!',
 | 
					 | 
				
			||||||
                'isValid' =>  false,
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            'Not Found Case' => [
 | 
					 | 
				
			||||||
                'name' => '@kostia:test.com',
 | 
					 | 
				
			||||||
                'key' => 'error',
 | 
					 | 
				
			||||||
                'message' =>  'A user with the username does not exist!!!',
 | 
					 | 
				
			||||||
                'isValid' =>  false,
 | 
					 | 
				
			||||||
            ],
 | 
					 | 
				
			||||||
            'Found Case' => [
 | 
					 | 
				
			||||||
                'name' => '@test:test.com',
 | 
					 | 
				
			||||||
                'key' => 'ok',
 | 
					 | 
				
			||||||
                'message' =>  'A user with the username is valid.',
 | 
					 | 
				
			||||||
                'isValid' =>  true,
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * @dataProvider dataProvider
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function testUserValidationWithName(string $name, string $key, string $message, bool $isValid): void
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $validator = new UserValidationByMatrixUsername($name);
 | 
					 | 
				
			||||||
        $json = $validator->getMessageMap();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertEquals($json[$key], $message);
 | 
					 | 
				
			||||||
        $this->assertEquals($validator->isValid(), $isValid);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue