108 lines
3.8 KiB
PHP
108 lines
3.8 KiB
PHP
|
<?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).']';
|
||
|
}
|
||
|
}
|