TestPieceSquadroUI.php 3,27 ko
Newer Older
<?php

require_once 'PieceSquadro.php';
require_once 'PieceSquadroUI.php';

/**
 * Classe de test pour vérifier le bon fonctionnement de PieceSquadroUI.
 */
class TestPieceSquadroUI {
    /**
     * Exécute tous les tests de la classe.
     */
    public static function runTests() {
        echo "Début des tests de PieceSquadroUI...\n";

        self::testCaseVide();
        self::testCaseNeutre();
        self::testPieceBlancheActive();
        self::testPieceBlancheInactive();
        self::testPieceNoireActive();
        self::testPieceNoireInactive();

        echo "Tous les tests ont été exécutés avec succès.\n";
    }

    /**
     * Teste la méthode générant une case vide.
     */
    public static function testCaseVide() {
        $output = PieceSquadroUI::boutonVide();
        $expected = '<button class="case vide" disabled></button>';
        assert($output === $expected, "Test case vide échoué. Output: $output");
        echo "Test case vide réussi.\n";
    }

    /**
     * Teste la méthode générant une case neutre.
     */
    public static function testCaseNeutre() {
        $output = PieceSquadroUI::boutonNeutre();
        $expected = '<button class="case neutre" disabled></button>';
        assert($output === $expected, "Test case neutre échoué. Output: $output");
        echo "Test case neutre réussi.\n";
    }

    /**
     * Teste une pièce blanche active (cliquable).
     */
    public static function testPieceBlancheActive() {
        $piece = PieceSquadro::initBlancEst();
        $output = PieceSquadroUI::boutonBlanc(2 , 3, $piece, true);
        $expected = '<button class="case blanc actif" name="coord" value="2,3">BE</button>';
        assert($output === $expected, "Test pièce blanche active échoué. Output: $output");
        echo "Test pièce blanche active réussi.\n";
    }

    /**
     * Teste une pièce blanche inactive (non cliquable).
     */
    public static function testPieceBlancheInactive() {
        $piece = PieceSquadro::initBlancOuest();
        $output = PieceSquadroUI::boutonBlanc(4, 1, $piece, false );
        $expected = '<button class="case blanc inactif" disabled>BO</button>';
        assert($output === $expected, "Test pièce blanche inactive échoué. Output: $output");
        echo "Test pièce blanche inactive réussi.\n";
    }

    /**
     * Teste une pièce noire active (cliquable).
     */
    public static function testPieceNoireActive() {
        $piece = PieceSquadro::initNoirSud();
        $output = PieceSquadroUI::boutonNoir(5, 0,$piece, true );
        $expected = '<button class="case noir actif" name="coord" value="5,0">NS</button>';
        assert($output === $expected, "Test pièce noire active échoué. Output: $output");
        echo "Test pièce noire active réussi.\n";
    }

    /**
     * Teste une pièce noire inactive (non cliquable).
     */
    public static function testPieceNoireInactive() {
        $piece = PieceSquadro::initNoirNord();
        $output = PieceSquadroUI::boutonNoir(0, 6,$piece, false );
        $expected = '<button class="case noir inactif" disabled>NN</button>';
        assert($output === $expected, "Test pièce noire inactive échoué. Output: $output");
        echo "Test pièce noire inactive réussi.\n";
    }
}

// Lancement des tests
TestPieceSquadroUI::runTests();

?>