PieceSquadroTest.php 4,5 ko
Newer Older
// Inclusion de la classe PieceSquadro
require_once 'PieceSquadro.php';

/**
 * Classe de test pour la classe PieceSquadro.
 */
class PieceSquadroTest
{
    /**
     * 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.
    public function testJson()
    {
        $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();

?>