PHP-Exercice3/EndUnit/EndUnit-v1.1.php

108 lines
3.8 KiB
PHP
Raw Normal View History

2022-02-27 14:41:39 +01:00
<?php
namespace endunit;
/**
* EndUnit
*
* Classe statique de permettant de faire des tests utilitaires
* pour vérifier le bon comportement de son code.
*
* @package endunit
*
* @version 1.1
* @author Jérémi N 'EndMove'
*/
class EndUnit {
/**
* Vérifier que deux string/int/double sont égaux.
*
* @return string Information sur le status du test 'Pass' ou 'Fail'
* Certaine informations complémentaires peuvent être
* jointes à la valeur de retour du test.
* @param string|int|float $expectedValue Valeur attendue par le programme.
* @param mixed $currentValue Valeur renvoyer par le programme.
*
* @since 1.0
* @version 1.1
*
* @author Jérémi N 'EndMove'
*/
public static function assertEquals(string|int|float $expectedValue, mixed $currentValue) : string
{
if ($expectedValue === $currentValue) return "<p><b class='pass'>Pass</b></p>";
else return sprintf("<p><b class='fail'>Fail</b> - expected: \"<code>%s</code>\"".
" <i>(type %s)</i>, but was: \"<code>%s</code>\" <i>(type %s)</i></p>",
$expectedValue, gettype($expectedValue), $currentValue, gettype($currentValue));
}
/**
* Vérifier que deux array sont égaux.
*
* @return string Information sur le status du test 'Pass' ou 'Fail'
* Certaine informations complémentaires peuvent être
* jointes à la valeur de retour du test.
* @param string|int|float $expectedValue Valeur attendue par le programme.
* @param mixed $currentValue Valeur renvoyer par le programme.
*
* @since 1.1
*
* @author Jérémi N 'EndMove'
*/
public static function assertArrayEquals(array $expectedValue, mixed $currentValue) : string
{
if ($expectedValue === $currentValue) return "<p><b class='pass'>Pass</b></p>";
else return sprintf("<p><b class='fail'>Fail</b> - expected: \"<code>%s</code>\"".
" <i>(type %s)</i>, but was: \"<code>%s</code>\" <i>(type %s)</i></p>",
self::getFormattedArray($expectedValue), gettype($expectedValue),
is_array($currentValue) ? self::getFormattedArray($currentValue) : $currentValue,
gettype($currentValue));
}
/**
* Vérifier que le résultat est bien un boolean de valeur true.
*
* @return string Information sur le status du test 'Pass' ou 'Fail'.
* @param bool $currentValue Un boolean.
*
* @since 1.0
*
* @author Jérémi N 'EndMove'
*/
public static function assertTrue(bool|null $currentValue) : string
{
return $currentValue === true ? "<p><b class='pass'>Pass</b></p>" : "<p><b class='fail'>Fail</b></p>";
}
/**
* Vérifier que le résultat est bien un boolean de valeur false.
*
* @return string Information sur le status du test 'Pass' ou 'Fail'.
* @param bool $currentValue Un boolean.
*
* @since 1.0
*
* @author Jérémi N 'EndMove'
*/
public static function assertFalse(bool|null $currentValue) : string
{
return $currentValue === false ? "<p><b class='pass'>Pass</b></p>" : "<p><b class='fail'>Fail</b></p>";
}
/**
* Converti un tableau en string pour que celui-ci soit affichable.
*
* @return string Tableau sous forme d'un string.
* @param array $array Un tableau à converir en string.
*
* @since 1.1
*
* @author Jérémi N 'EndMove'
*/
public static function getFormattedArray(array $array) : string
{
$newArray = array();
foreach ($array as $key => $value) {
$newArray[] = $key.':'.(is_array($value) ? self::getFormattedArray($value) : $value);
}
return '['.implode(', ', $newArray).']';
}
}