add($piece1); $collection->add($piece2); echo "Test Add:\n"; echo "Nombre de pièces: " . count($collection) . "\n"; echo "Pièces: " . $collection . "\n\n"; } /** * Teste la suppression d'une pièce par index. * * Vérifie que la pièce est correctement supprimée de la collection. * * @return void */ public function testRemove() { $collection = new ArrayPieceSquadro(); $piece1 = PieceSquadro::initNoirNord(); $piece2 = PieceSquadro::initBlancEst(); $collection->add($piece1); $collection->add($piece2); $collection->remove(0); echo "Test Remove:\n"; echo "Nombre de pièces après suppression: " . count($collection) . "\n"; echo "Pièces restantes: " . $collection . "\n\n"; } /** * Teste l'accès par tableau (ArrayAccess). * * Vérifie que l'accès et la modification des pièces par index fonctionnent. * * @return void */ public function testArrayAccess() { $collection = new ArrayPieceSquadro(); $piece1 = PieceSquadro::initNoirNord(); $piece2 = PieceSquadro::initBlancEst(); $collection[] = $piece1; $collection[] = $piece2; echo "Test ArrayAccess:\n"; echo "Pièce à l'index 0: " . $collection[0] . "\n"; echo "Pièce à l'index 1: " . $collection[1] . "\n"; $collection[0] = PieceSquadro::initBlancOuest(); echo "Modification de l'index 0: " . $collection[0] . "\n\n"; } /** * Teste la conversion de la collection en chaîne de caractères. * * Vérifie que __toString retourne une représentation correcte. * * @return void */ public function testToString() { $collection = new ArrayPieceSquadro(); $piece1 = PieceSquadro::initNoirNord(); $piece2 = PieceSquadro::initBlancEst(); $collection->add($piece1); $collection->add($piece2); echo "Test ToString:\n"; echo $collection . "\n"; } /** * Teste la conversion en JSON et la reconstruction depuis JSON. * * Vérifie que toJson et fromJson fonctionnent correctement. * * @return void */ public function testJsonConversion() { $collection = new ArrayPieceSquadro(); $piece1 = PieceSquadro::initNoirNord(); $piece2 = PieceSquadro::initBlancEst(); $collection->add($piece1); $collection->add($piece2); $json = $collection->toJson(); $restoredCollection = ArrayPieceSquadro::fromJson($json); echo "Test JsonConversion:\n"; echo "JSON: $json\n"; echo "Collection restaurée:\n" . $restoredCollection . "\n\n"; } /** * Teste l'implémentation de Countable. * * Vérifie que count() retourne le bon nombre de pièces. * * @return void */ public function testCountable() { $collection = new ArrayPieceSquadro(); $piece1 = PieceSquadro::initNoirNord(); $piece2 = PieceSquadro::initBlancEst(); $collection->add($piece1); $collection->add($piece2); echo "Test Countable:\n"; echo "Nombre de pièces: " . count($collection) . "\n\n"; } } // Exécution des tests $test = new ArrayPieceSquadroTest(); $test->testAdd(); $test->testRemove(); $test->testArrayAccess(); $test->testToString(); $test->testJsonConversion(); $test->testCountable(); ?>