From bc6e3e47fefa2d0cb0004a10f72b2a2cd23b42b9 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Wed, 19 Nov 2025 21:29:36 +0200 Subject: [PATCH] test get bid and throws error on invalid id --- src/Bid/BidRepository.php | 1 + src/Bid/UseCases/GetBidForCarrier.php | 26 +++++++++++++++++++ src/Bid/UseCases/GetBidForCarrierRequest.php | 10 +++++++ .../Bid/UseCases/GetBidForCarrierTest.php | 22 ++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 src/Bid/UseCases/GetBidForCarrier.php create mode 100644 src/Bid/UseCases/GetBidForCarrierRequest.php create mode 100644 tests/Unit/Bid/UseCases/GetBidForCarrierTest.php diff --git a/src/Bid/BidRepository.php b/src/Bid/BidRepository.php index d9d49f5..e72582e 100644 --- a/src/Bid/BidRepository.php +++ b/src/Bid/BidRepository.php @@ -5,4 +5,5 @@ namespace FreightQuote\Bid; interface BidRepository { public function save(Bid $bid): Bid; + public function find(string $id): ?Bid; } diff --git a/src/Bid/UseCases/GetBidForCarrier.php b/src/Bid/UseCases/GetBidForCarrier.php new file mode 100644 index 0000000..90404c2 --- /dev/null +++ b/src/Bid/UseCases/GetBidForCarrier.php @@ -0,0 +1,26 @@ +bidRepo->find($dto->id); + if ($bid === null) { + throw new InvalidArgumentException('Bid not found!'); + } + return $bid; + } +} diff --git a/src/Bid/UseCases/GetBidForCarrierRequest.php b/src/Bid/UseCases/GetBidForCarrierRequest.php new file mode 100644 index 0000000..bccbdfc --- /dev/null +++ b/src/Bid/UseCases/GetBidForCarrierRequest.php @@ -0,0 +1,10 @@ +expectException(InvalidArgumentException::class); + $bidId = '12345abcd'; + $dto = new GetBidForCarrierRequest($bidId); + $bidRepo = new FakeBidRepository(); + $useCase = new GetBidForCarrier($bidRepo); + $foundBid = $useCase->execute($dto); + } +}