test that carrier email is unique

This commit is contained in:
Yisroel Baum 2025-11-18 09:22:13 +02:00
parent 908baee2a7
commit 2d8bca1a07
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
4 changed files with 60 additions and 0 deletions

View file

@ -5,6 +5,7 @@ namespace FreightQuote\Carrier;
interface CarrierRepository
{
public function find(int $id): ?Carrier;
public function findByEmail(string $email): ?Carrier;
public function save(Carrier $carrier): Carrier;
/**

View file

@ -4,6 +4,7 @@ namespace FreightQuote\Carrier\UseCases;
use FreightQuote\Carrier\Carrier;
use FreightQuote\Carrier\CarrierRepository;
use InvalidArgumentException;
class CreateCarrier
{
@ -13,6 +14,9 @@ class CreateCarrier
public function execute(CreateCarrierRequest $dto): Carrier
{
if ($this->carrierRepo->findByEmail($dto->email) !== null) {
throw new InvalidArgumentException();
}
$carrier = new Carrier(
null,
$dto->email,