diff --git a/tests/AbstractApiTestCase.php b/tests/AbstractApiTestCase.php index 8b6a44f..ec2b8ae 100644 --- a/tests/AbstractApiTestCase.php +++ b/tests/AbstractApiTestCase.php @@ -284,11 +284,12 @@ abstract class AbstractApiTestCase extends ApiTestCase return $link; } - protected function createMachinePieceLink(Machine $machine, Piece $piece, ?MachineComponentLink $parentLink = null): MachinePieceLink + protected function createMachinePieceLink(Machine $machine, Piece $piece, ?MachineComponentLink $parentLink = null, int $quantity = 1): MachinePieceLink { $link = new MachinePieceLink(); $link->setMachine($machine); $link->setPiece($piece); + $link->setQuantity($quantity); if (null !== $parentLink) { $link->setParentLink($parentLink); } diff --git a/tests/Api/Entity/MachinePieceLinkTest.php b/tests/Api/Entity/MachinePieceLinkTest.php index 994e8e4..34d36d1 100644 --- a/tests/Api/Entity/MachinePieceLinkTest.php +++ b/tests/Api/Entity/MachinePieceLinkTest.php @@ -85,6 +85,43 @@ class MachinePieceLinkTest extends AbstractApiTestCase ]); } + public function testPostWithQuantity(): void + { + $client = $this->createGestionnaireClient(); + $machine = $this->createMachine(); + $piece = $this->createPiece(); + + $client->request('POST', '/api/machine_piece_links', [ + 'headers' => ['Content-Type' => 'application/ld+json'], + 'json' => [ + 'machine' => self::iri('machines', $machine->getId()), + 'piece' => self::iri('pieces', $piece->getId()), + 'quantity' => 5, + ], + ]); + + $this->assertResponseStatusCodeSame(201); + $this->assertJsonContains(['quantity' => 5]); + } + + public function testPostDefaultQuantity(): void + { + $client = $this->createGestionnaireClient(); + $machine = $this->createMachine(); + $piece = $this->createPiece(); + + $client->request('POST', '/api/machine_piece_links', [ + 'headers' => ['Content-Type' => 'application/ld+json'], + 'json' => [ + 'machine' => self::iri('machines', $machine->getId()), + 'piece' => self::iri('pieces', $piece->getId()), + ], + ]); + + $this->assertResponseStatusCodeSame(201); + $this->assertJsonContains(['quantity' => 1]); + } + public function testDelete(): void { $machine = $this->createMachine('Machine A');