- Добавлено перечисление VarNotBoolAction, для определения действий в классе BoolExtensions (методы AnyTrue и TrueCount), если передана часть не булевого типа.

- В расширении BoolExtensions в методах AnyTrue и TrueCount убрано выброс исключение, если какой-то аргумент из массива expressions не является булевым типом. Вместо него в обоих методах введён необязательный параметр $ifNotBool (тип VarNotBoolAction), который определяет действие: игнорирование (этот аргумент просто исключается из проверки), считать правдивым (вместо него ставится true) и считать ложным (вместо него ставится false).
This commit is contained in:
2025-05-24 14:30:34 +03:00
parent 10ec8df983
commit 6a4df8373c
5 changed files with 105 additions and 45 deletions

View File

@@ -2,7 +2,7 @@
namespace goodboyalex\php_components_pack\tests\extensions;
use Exception;
use goodboyalex\php_components_pack\enums\VarNotBoolAction;
use goodboyalex\php_components_pack\extensions\BoolExtensions;
use PHPUnit\Framework\TestCase;
@@ -30,6 +30,7 @@ class BoolExtensionsTest extends TestCase
private function PrepareForTest (): void
{
require_once __DIR__ . '/../../sources/enums/VarNotBoolAction.php';
require_once __DIR__ . '/../../sources/extensions/BoolExtensions.php';
}
@@ -46,23 +47,19 @@ class BoolExtensionsTest extends TestCase
$this->assertEquals(14,
BoolExtensions::TrueCount($array));
$this->expectException(Exception::class);
$array[] = "ПРЕДАТЕЛЬ!";
BoolExtensions::TrueCount($array);
$this->assertEquals(14, BoolExtensions::TrueCount($array));
$this->assertEquals(14, BoolExtensions::TrueCount($array, VarNotBoolAction::ConsiderItFalse));
$this->assertEquals(15, BoolExtensions::TrueCount($array, VarNotBoolAction::ConsiderItTrue));
}
public function testExportToString ()
{
$this->PrepareForTest();
$b = true;
$this->assertEquals('О, да!', BoolExtensions::ExportToString(true, 'О, да!', 'О, нет!'));
$this->assertEquals('О, да!', BoolExtensions::ExportToString($b, 'О, да!', 'О, нет!'));
$b = false;
$this->assertEquals('О, нет!', BoolExtensions::ExportToString($b, 'О, да!', 'О, нет!'));
$this->assertEquals('О, нет!', BoolExtensions::ExportToString(false, 'О, да!', 'О, нет!'));
}
}