Newer
Older
// Inclusion de la classe PieceSquadro
require_once 'PieceSquadro.php';
/**
* Classe de test pour la classe PieceSquadro.
*/
{
/**
* Teste l'initialisation d'une pièce vide.
*/
public function testInitVide()
{
$piece = PieceSquadro::initVide();
echo "Test Init Vide: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: VIDE = " . PieceSquadro::VIDE . ", NEUTRE = " . PieceSquadro::NEUTRE . "\n\n";
}
/**
* Teste l'initialisation d'une pièce neutre.
*/
public function testInitNeutre()
{
$piece = PieceSquadro::initNeutre();
echo "Test Init Neutre: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: NEUTRE = " . PieceSquadro::NEUTRE . "\n\n";
}
/**
* Teste l'initialisation d'une pièce noire orientée au nord.
*/
public function testInitNoirNord()
{
$piece = PieceSquadro::initNoirNord();
echo "Test Init Noir Nord: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n";
}
/**
* Teste l'initialisation d'une pièce noire orientée au sud.
*/
public function testInitNoirSud()
{
$piece = PieceSquadro::initNoirSud();
echo "Test Init Noir Sud: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", SUD = " . PieceSquadro::SUD . "\n\n";
}
/**
* Teste l'initialisation d'une pièce blanche orientée à l'est.
*/
public function testInitBlancEst()
{
$piece = PieceSquadro::initBlancEst();
echo "Test Init Blanc Est: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: BLANC = " . PieceSquadro::BLANC . ", EST = " . PieceSquadro::EST . "\n\n";
}
/**
* Teste l'initialisation d'une pièce blanche orientée à l'ouest.
*/
public function testInitBlancOuest()
{
$piece = PieceSquadro::initBlancOuest();
echo "Test Init Blanc Ouest: ";
echo "Couleur: " . $piece->getCouleur() . " Direction: " . $piece->getDirection() . "\n";
echo "Constantes: BLANC = " . PieceSquadro::BLANC . ", OUEST = " . PieceSquadro::OUEST . "\n\n";
}
/**
* Teste la méthode __toString().
*/
public function testToString()
{
$piece = PieceSquadro::initNoirNord();
echo "Test ToString: ";
echo (string)$piece . "\n";
echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n";
}
/**
* Teste la méthode inverseDirection().
*/
public function testInverseDirection()
{
// vérif retournement pièces blanches
$piece = PieceSquadro::initBlancOuest();
$piece->inverseDirection();
echo "Test InverseDirection (Blanc Ouest -> Est): ";
echo "Direction: " . $piece->getDirection() . "\n";
echo "Constantes: EST = " . PieceSquadro::EST . ", OUEST = " . PieceSquadro::OUEST . "\n\n";
// vérif retournement pièces noires
$piece = PieceSquadro::initNoirNord();
$piece->inverseDirection();
echo "Test InverseDirection (Noir Nord -> Sud): ";
echo "Direction: " . $piece->getDirection() . "\n";
echo "Constantes: NORD = " . PieceSquadro::NORD . ", SUD = " . PieceSquadro::SUD . "\n\n";
* Test la réversibilité de la méthode toJson avec la méthode fromJson.
$piece = PieceSquadro::initNoirNord();
$json = $piece->toJson();
$pieceFromJson = PieceSquadro::fromJson($json);
echo "Test Json: \n";
echo "Json: $json\n";
echo "FromJson Couleur: " . $pieceFromJson->getCouleur() . " Direction: " . $pieceFromJson->getDirection() . "\n";
echo "Constantes: NOIR = " . PieceSquadro::NOIR . ", NORD = " . PieceSquadro::NORD . "\n\n";
// Exécution des tests
$test = new PieceSquadroTest();
$test->testInitVide();
$test->testInitNeutre();
$test->testInitNoirNord();
$test->testInitNoirSud();
$test->testInitBlancEst();
$test->testInitBlancOuest();
$test->testToString();
$test->testInverseDirection();
$test->testJson();
?>