test(constructeur) : update test helpers and MCP tests for ConstructeurLinks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-03-31 14:30:46 +02:00
parent 691f632be0
commit 34b0d9225c
5 changed files with 56 additions and 12 deletions

View File

@@ -10,17 +10,21 @@ use App\Entity\Composant;
use App\Entity\ComposantPieceSlot; use App\Entity\ComposantPieceSlot;
use App\Entity\ComposantProductSlot; use App\Entity\ComposantProductSlot;
use App\Entity\ComposantSubcomponentSlot; use App\Entity\ComposantSubcomponentSlot;
use App\Entity\ComposantConstructeurLink;
use App\Entity\Constructeur; use App\Entity\Constructeur;
use App\Entity\CustomField; use App\Entity\CustomField;
use App\Entity\CustomFieldValue; use App\Entity\CustomFieldValue;
use App\Entity\Machine; use App\Entity\Machine;
use App\Entity\MachineComponentLink; use App\Entity\MachineComponentLink;
use App\Entity\MachineConstructeurLink;
use App\Entity\MachinePieceLink; use App\Entity\MachinePieceLink;
use App\Entity\MachineProductLink; use App\Entity\MachineProductLink;
use App\Entity\ModelType; use App\Entity\ModelType;
use App\Entity\Piece; use App\Entity\Piece;
use App\Entity\PieceConstructeurLink;
use App\Entity\PieceProductSlot; use App\Entity\PieceProductSlot;
use App\Entity\Product; use App\Entity\Product;
use App\Entity\ProductConstructeurLink;
use App\Entity\Profile; use App\Entity\Profile;
use App\Entity\Site; use App\Entity\Site;
use App\Enum\ModelCategory; use App\Enum\ModelCategory;
@@ -255,6 +259,54 @@ abstract class AbstractApiTestCase extends ApiTestCase
return $c; return $c;
} }
protected function createMachineConstructeurLink(Machine $machine, Constructeur $constructeur, ?string $supplierReference = null): MachineConstructeurLink
{
$link = new MachineConstructeurLink();
$link->setMachine($machine);
$link->setConstructeur($constructeur);
$link->setSupplierReference($supplierReference);
$this->getEntityManager()->persist($link);
$this->getEntityManager()->flush();
return $link;
}
protected function createPieceConstructeurLink(Piece $piece, Constructeur $constructeur, ?string $supplierReference = null): PieceConstructeurLink
{
$link = new PieceConstructeurLink();
$link->setPiece($piece);
$link->setConstructeur($constructeur);
$link->setSupplierReference($supplierReference);
$this->getEntityManager()->persist($link);
$this->getEntityManager()->flush();
return $link;
}
protected function createComposantConstructeurLink(Composant $composant, Constructeur $constructeur, ?string $supplierReference = null): ComposantConstructeurLink
{
$link = new ComposantConstructeurLink();
$link->setComposant($composant);
$link->setConstructeur($constructeur);
$link->setSupplierReference($supplierReference);
$this->getEntityManager()->persist($link);
$this->getEntityManager()->flush();
return $link;
}
protected function createProductConstructeurLink(Product $product, Constructeur $constructeur, ?string $supplierReference = null): ProductConstructeurLink
{
$link = new ProductConstructeurLink();
$link->setProduct($product);
$link->setConstructeur($constructeur);
$link->setSupplierReference($supplierReference);
$this->getEntityManager()->persist($link);
$this->getEntityManager()->flush();
return $link;
}
protected function createModelType( protected function createModelType(
string $name = 'ModelType Test', string $name = 'ModelType Test',
string $code = 'MT-001', string $code = 'MT-001',

View File

@@ -30,9 +30,7 @@ class ComposantsCrudToolTest extends AbstractApiTestCase
$modelType = $this->createModelType(name: 'Type Composant', code: 'TC-001', category: ModelCategory::COMPONENT); $modelType = $this->createModelType(name: 'Type Composant', code: 'TC-001', category: ModelCategory::COMPONENT);
$composant = $this->createComposant(name: 'Composant Gamma', type: $modelType); $composant = $this->createComposant(name: 'Composant Gamma', type: $modelType);
// Add constructeur to composant $this->createComposantConstructeurLink($composant, $constructeur);
$composant->addConstructeur($constructeur);
$this->getEntityManager()->flush();
$session = $this->createMcpClient('ROLE_VIEWER'); $session = $this->createMcpClient('ROLE_VIEWER');

View File

@@ -30,9 +30,7 @@ class MachinesCrudToolTest extends AbstractApiTestCase
$constructeur = $this->createConstructeur(name: 'Fournisseur M'); $constructeur = $this->createConstructeur(name: 'Fournisseur M');
$machine = $this->createMachine(name: 'Machine Gamma', site: $site, reference: 'REF-M001'); $machine = $this->createMachine(name: 'Machine Gamma', site: $site, reference: 'REF-M001');
// Add constructeur to machine $this->createMachineConstructeurLink($machine, $constructeur);
$machine->addConstructeur($constructeur);
$this->getEntityManager()->flush();
$session = $this->createMcpClient('ROLE_VIEWER'); $session = $this->createMcpClient('ROLE_VIEWER');

View File

@@ -30,9 +30,7 @@ class PiecesCrudToolTest extends AbstractApiTestCase
$modelType = $this->createModelType(name: 'Type Piece', code: 'TP-001', category: ModelCategory::PIECE); $modelType = $this->createModelType(name: 'Type Piece', code: 'TP-001', category: ModelCategory::PIECE);
$piece = $this->createPiece(name: 'Piece Gamma', reference: 'REF-001', type: $modelType); $piece = $this->createPiece(name: 'Piece Gamma', reference: 'REF-001', type: $modelType);
// Add constructeur to piece $this->createPieceConstructeurLink($piece, $constructeur);
$piece->addConstructeur($constructeur);
$this->getEntityManager()->flush();
$session = $this->createMcpClient('ROLE_VIEWER'); $session = $this->createMcpClient('ROLE_VIEWER');

View File

@@ -30,9 +30,7 @@ class ProductsCrudToolTest extends AbstractApiTestCase
$modelType = $this->createModelType(name: 'Type Produit', code: 'TP-001', category: ModelCategory::PRODUCT); $modelType = $this->createModelType(name: 'Type Produit', code: 'TP-001', category: ModelCategory::PRODUCT);
$product = $this->createProduct(name: 'Product Gamma', reference: 'REF-001', type: $modelType); $product = $this->createProduct(name: 'Product Gamma', reference: 'REF-001', type: $modelType);
// Add constructeur to product $this->createProductConstructeurLink($product, $constructeur);
$product->addConstructeur($constructeur);
$this->getEntityManager()->flush();
$session = $this->createMcpClient('ROLE_VIEWER'); $session = $this->createMcpClient('ROLE_VIEWER');