Compare commits

..
2 Commits
Author SHA1 Message Date
KKlochko 4b3bf81c76 Refactor ValidatorByNameFactories to use MessageByNameFactory.
continuous-integration/drone/push Build is passing
2023-09-01 12:22:34 +03:00
KKlochko 02cdb1f792 Add MessageFactory, MessageByNameFactory. 2023-09-01 12:22:08 +03:00
5 changed files with 73 additions and 10 deletions
@@ -3,6 +3,7 @@
namespace App\Models\Validation\Messages\Factories; namespace App\Models\Validation\Messages\Factories;
use App\Models\Validation\Messages\Factories\InformativeValidatorByNameFactory; use App\Models\Validation\Messages\Factories\InformativeValidatorByNameFactory;
use App\Models\Validation\Messages\Factories\MessageByNameFactory;
use App\Models\Validation\Messages\InformativeValidator; use App\Models\Validation\Messages\InformativeValidator;
use App\Models\Validation\Validators\Validator; use App\Models\Validation\Validators\Validator;
@@ -12,11 +13,7 @@ class CompanyInformativeValidatorByNameFactory extends InformativeValidatorByNam
{ {
public function __construct(string $name) public function __construct(string $name)
{ {
$this->setMessages([ $this->setMessages((new MessageByNameFactory('company'))->create());
'found' => 'A company with the name is valid.',
'not_found' => 'A company with the name does not exist!!!',
'invalid_name' => 'The company name is empty, please, write the name!!!',
]);
$this->setName($name); $this->setName($name);
} }
@@ -3,6 +3,7 @@
namespace App\Models\Validation\Messages\Factories; namespace App\Models\Validation\Messages\Factories;
use App\Models\Validation\Messages\Factories\InformativeValidatorByNameFactory; use App\Models\Validation\Messages\Factories\InformativeValidatorByNameFactory;
use App\Models\Validation\Messages\Factories\MessageByNameFactory;
use App\Models\Validation\Messages\InformativeValidator; use App\Models\Validation\Messages\InformativeValidator;
use App\Models\Validation\Validators\Validator; use App\Models\Validation\Validators\Validator;
@@ -12,11 +13,7 @@ class ItemInformativeValidatorByNameFactory extends InformativeValidatorByNameFa
{ {
public function __construct(string $name) public function __construct(string $name)
{ {
$this->setMessages([ $this->setMessages((new MessageByNameFactory('item'))->create());
'found' => 'A item with the name is valid.',
'not_found' => 'A item with the name does not exist!!!',
'invalid_name' => 'The item name is empty, please, write the name!!!',
]);
$this->setName($name); $this->setName($name);
} }
@@ -0,0 +1,35 @@
<?php
namespace App\Models\Validation\Messages\Factories;
use App\Models\Validation\Messages\Factories\MessageFactory;
class MessageByNameFactory extends MessageFactory
{
private string $name;
public function __construct(string $name)
{
$this->setName($name);
}
public function setName(string $name): void
{
$this->name = $name;
}
public function getName(): string
{
return $this->name;
}
public function create(): array
{
return [
'found' => "A $this->name with the name is valid.",
'not_found' => "A $this->name with the name does not exist!!!",
'invalid_name' => "The $this->name name is empty, please, write the name!!!",
];
}
}
@@ -0,0 +1,9 @@
<?php
namespace App\Models\Validation\Messages\Factories;
abstract class MessageFactory
{
abstract function create(): array;
}
@@ -0,0 +1,25 @@
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Validation\Messages\Factories\MessageByNameFactory;
class MessageByNameFactoryTest extends TestCase
{
public function testCreate(): void
{
$name = 'company';
$expected_messages = [
'found' => "A company with the name is valid.",
'not_found' => "A company with the name does not exist!!!",
'invalid_name' => "The company name is empty, please, write the name!!!",
];
$factory = new MessageByNameFactory($name);
$this->assertEquals($factory->create(), $expected_messages);
}
}