-
Notifications
You must be signed in to change notification settings - Fork 0
/
SequenceTest.php
39 lines (32 loc) · 949 Bytes
/
SequenceTest.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
<?php
namespace MockChainTest;
use MockChain\Chain;
use MockChain\ReturnNull;
use MockChain\Sequence;
use MockChainTest\Anatomy\Organ;
use PHPUnit\Framework\TestCase;
class SequenceTest extends TestCase
{
public function test()
{
$sequence = new Sequence();
$sequence->add(null);
$sequence->add(1);
$sequence->add(2);
$this->assertTrue($sequence->return() instanceof ReturnNull);
$this->assertEquals($sequence->return(), 1);
$this->assertEquals($sequence->return(), 2);
$this->assertEquals($sequence->return(), 2);
}
public function testSequenceThroughChain()
{
$sequence = (new Sequence())
->add(null)
->add("hello");
$mock = (new Chain($this))
->add(Organ::class, 'getName', $sequence)
->getMock();
$this->assertNull($mock->getName());
$this->assertEquals("hello", $mock->getName());
}
}