- Добавлено перечисление VarNotBoolAction, для определения действий в классе BoolExtensions (методы AnyTrue и TrueCount), если передана часть не булевого типа. - В расширении BoolExtensions в методах AnyTrue и TrueCount убрано выброс исключение, если какой-то аргумент из массива expressions не является булевым типом. Вместо него в обоих методах введён необязательный параметр $ifNotBool (тип VarNotBoolAction), который определяет действие: игнорирование (этот аргумент просто исключается из проверки), считать правдивым (вместо него ставится true) и считать ложным (вместо него ставится false).
65 lines
2.2 KiB
PHP
65 lines
2.2 KiB
PHP
<?php
|
||
|
||
namespace goodboyalex\php_components_pack\tests\extensions;
|
||
|
||
use goodboyalex\php_components_pack\enums\VarNotBoolAction;
|
||
use goodboyalex\php_components_pack\extensions\BoolExtensions;
|
||
use PHPUnit\Framework\TestCase;
|
||
|
||
class BoolExtensionsTest extends TestCase
|
||
{
|
||
public function testAnyTrue ()
|
||
{
|
||
$this->PrepareForTest();
|
||
|
||
$hasTrue = [
|
||
true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false,
|
||
true, false, true, false, true, false, true, false, true, false, true, false
|
||
];
|
||
|
||
$noTrue = [
|
||
false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,
|
||
false, false, false, false, false, false, false, false, false, false, false
|
||
];
|
||
|
||
$this->assertTrue(BoolExtensions::AnyTrue($hasTrue));
|
||
|
||
$this->assertFalse(BoolExtensions::AnyTrue($noTrue));
|
||
|
||
}
|
||
|
||
private function PrepareForTest (): void
|
||
{
|
||
require_once __DIR__ . '/../../sources/enums/VarNotBoolAction.php';
|
||
require_once __DIR__ . '/../../sources/extensions/BoolExtensions.php';
|
||
}
|
||
|
||
public function testTrueCount ()
|
||
{
|
||
$this->PrepareForTest();
|
||
|
||
$array = [
|
||
true, false, true, false, true, false, true, false, true, false, true, false,
|
||
true, false, true, false, true, false, true, false, true, false, true, false, true, false, true,
|
||
false
|
||
];
|
||
|
||
$this->assertEquals(14,
|
||
BoolExtensions::TrueCount($array));
|
||
|
||
$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();
|
||
|
||
$this->assertEquals('О, да!', BoolExtensions::ExportToString(true, 'О, да!', 'О, нет!'));
|
||
|
||
$this->assertEquals('О, нет!', BoolExtensions::ExportToString(false, 'О, да!', 'О, нет!'));
|
||
}
|
||
} |