- Добавлено перечисление 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, 'О, да!', 'О, нет!'));
 | ||
|     }
 | ||
| } |