-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConditionalTest.php
45 lines (36 loc) · 1.18 KB
/
ConditionalTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
declare(strict_types = 1);
namespace Marcosh\EffectorTest;
use Marcosh\Effector\Conditional;
use PHPUnit\Framework\TestCase;
final class ConditionalTest extends TestCase
{
public function testConditionalCorrectlyExecutesFirstCondition()
{
$conditional = Conditional::ifThenElse(
function () {return true;},
function () {return 'then';},
function () {return 'else';}
);
self::assertSame('then', $conditional());
}
public function testConditionalCorrectlyExceutesSecondCondition()
{
$conditional = Conditional::ifThenElse(
function () {return false;},
function () {return 'then';},
function () {return 'else';}
);
self::assertSame('else', $conditional());
}
public function testConditionalCorrectlyDiscriminatesAccordingToArgs()
{
$conditional = Conditional::ifThenElse(
function (int $x) {return $x > 0;},
function (int $x) {return $x + 3;},
function (int $x) {return $x - 3;}
);
self::assertSame(26, $conditional(23));
self::assertSame(-26, $conditional(-23));
}
}