TestPieceSquadroUI.php 3,93 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="button has-background-grey-light is-medium is-square" disabled><span class="icon is-medium"></span></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="button has-background-grey-darker is-medium is-square" disabled><span class="icon is-medium"></span></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="button has-background-white is-medium is-square has-text-dark" ' . ' name="move" value="' . 2 . ',' . 3 . '"><span class="icon is-medium">' . "→" . '</span></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="button has-background-white is-medium is-square has-text-dark" '. "disabled" . ' name="move" value="' . 4 . ',' . 1 . '"><span class="icon is-medium">' . "←" . '</span></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="button has-background-black is-medium is-square has-text-white" ' . '' . ' name="move" value="' . 5 . ',' . 0 . '"><span class="icon is-medium">' . "↓" . '</span></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="button has-background-black is-medium is-square has-text-white" ' . 'disabled' . ' name="move" value="' . 0 . ',' . 6 . '"><span class="icon is-medium">' . "↑" . '</span></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();

?>