Completed
Push — master ( a3e9c3...3a2779 )
by Korotkov
03:50 queued 02:11
created

BuilderTest::getMaster()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * @author  : Jagepard <[email protected]>
5
 * @license https://mit-license.org/ MIT
6
 */
7
8
namespace Creational\Builder\Tests;
9
10
use Creational\Builder\Order;
11
use Creational\Builder\Master;
12
use Creational\Builder\PCBuilder;
13
use Creational\Builder\Hardware\Cpu;
14
use Creational\Builder\Hardware\Gpu;
15
use Creational\Builder\Hardware\Ram;
16
use Creational\Builder\Hardware\Ssd;
17
use Creational\Builder\Hardware\Hdd;
18
use Creational\Builder\Hardware\Motherboard;
19
use Creational\Builder\Interfaces\MasterInterface;
20
use Creational\Builder\Interfaces\ComputerInterface;
21
22
use PHPUnit\Framework\TestCase as PHPUnit_Framework_TestCase;
23
24
class BuilderTest extends PHPUnit_Framework_TestCase
25
{
26
    /**
27
     * @var MasterInterface
28
     */
29
    private $master;
30
31
    /**
32
     * @var ComputerInterface
33
     */
34
    private $desktop;
35
36
    protected function setUp(): void
37
    {
38
        $this->master = new Master();
39
        $this->master->setBuilder(new PCBuilder());
40
        $this->master->getBuilder()
41
            ->setPart(new Motherboard(Order::MB))
42
            ->setPart(new Cpu(Order::CPU))
43
            ->setPart(new Ram(Order::RAM))
44
            ->setPart(new Gpu(Order::GPU))
45
            ->setPart(new Ssd(Order::SSD))
46
            ->setPart(new Hdd(Order::HDD));
47
48
        $this->desktop = $this->master->build();
49
    }
50
51
    public function testInstance()
52
    {
53
        $this->assertInstanceOf(ComputerInterface::class, $this->desktop);
54
    }
55
56
    public function testParts()
57
    {
58
        $this->assertEquals(Order::MB, $this->desktop->getComponent(Motherboard::class)->getValue());
59
        $this->assertEquals(Order::CPU, $this->desktop->getComponent(Cpu::class)->getValue());
60
        $this->assertEquals(Order::RAM, $this->desktop->getComponent(Ram::class)->getValue());
61
        $this->assertEquals(Order::GPU, $this->desktop->getComponent(Gpu::class)->getValue());
62
        $this->assertEquals(Order::SSD, $this->desktop->getComponent(Ssd::class)->getValue());
63
        $this->assertEquals(Order::HDD, $this->desktop->getComponent(Hdd::class)->getValue());
64
    }
65
}
66