ActionSquadroTest.php 2,74 ko
Newer Older
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
<?php

require_once 'PlateauSquadro.php';
require_once 'ActionSquadro.php';
require_once 'PieceSquadro.php';

class ActionSquadroTest {

    public static function testJouerPiece() {
        $plateau = new PlateauSquadro();
        $action = new ActionSquadro($plateau);
        $success = true;

        $piece = PieceSquadro::initBlancEst();
        $plateau->setPiece($piece, 1, 0);

        echo "\nVérification du déplacement de la pièce...\n";
        $result = $action->jouePiece(1, 0);
        if ($result !== true) {
            echo "Erreur : la pièce n'a pas pu être jouée.\n";
            $success = false;
        }
        if ($plateau->getPiece(1, 0)->getCouleur() !== PieceSquadro::VIDE) {
            echo "Erreur : la case (1, 0) devrait être VIDE.\n";
            $success = false;
        }
        if ($plateau->getPiece(1, 1)->getCouleur() !== PieceSquadro::BLANC) {
            echo "Erreur : la case (1, 1) devrait être BLANCHE.\n";
            $success = false;
        }
        echo $success ? "Déplacement de la pièce vérifié avec succès.\n" : "Échec de la vérification du déplacement de la pièce.\n";
        return $success;
    }

    public static function testPieceNonJouable() {
        $plateau = new PlateauSquadro();
        $action = new ActionSquadro($plateau);
        $success = true;

        echo "\nVérification d'une pièce non jouable...\n";
        $result = $action->jouePiece(0, 0);
        if ($result !== false) {
            echo "Erreur : une pièce non jouable a été déplacée.\n";
            $success = false;
        }
        echo $success ? "Vérification de la pièce non jouable réussie.\n" : "Échec de la vérification de la pièce non jouable.\n";
        return $success;
    }

    public static function testVictoire() {
        $plateau = new PlateauSquadro();
        $action = new ActionSquadro($plateau);
        $success = true;

        echo "\nVérification des conditions de victoire...\n";

        $plateau->retireLigneJouable(1);
        $plateau->retireLigneJouable(2);
        $plateau->retireLigneJouable(3);
        $plateau->retireLigneJouable(4);

        if ($action->remporteVictoire(PieceSquadro::BLANC) !== true) {
            echo "Erreur : les blancs devraient avoir gagné.\n";
            $success = false;
        }
        if ($action->remporteVictoire(PieceSquadro::NOIR) !== false) {
            echo "Erreur : les noirs ne devraient pas avoir gagné.\n";
            $success = false;
        }
        echo $success ? "Conditions de victoire vérifiées avec succès.\n" : "Échec de la vérification des conditions de victoire.\n";
        return $success;
    }
}

ActionSquadroTest::testJouerPiece();
ActionSquadroTest::testPieceNonJouable();
ActionSquadroTest::testVictoire();

?>