Completed
Push — master ( c2f20e...b2a2e3 )
by Korotkov
03:26 queued 02:00
created

FactoryMethodTest::testFactoryMethod()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 2
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
/**
4
 * @author  : Jagepard <[email protected]>
5
 * @license https://mit-license.org/ MIT
6
 */
7
8
namespace Creational\FactoryMethod\Tests;
9
10
use Creational\FactoryMethod\FirstAbstractProduct;
11
use Creational\FactoryMethod\SecondAbstractProduct;
12
use Creational\FactoryMethod\FactoryMethod;
13
use Creational\FactoryMethod\AbstractProduct;
14
use Creational\FactoryMethod\FactoryMethodInterface;
15
use PHPUnit\Framework\TestCase as PHPUnit_Framework_TestCase;
16
17
class FactoryMethodTest extends PHPUnit_Framework_TestCase
18
{
19
    /**
20
     * @var FactoryMethodInterface
21
     */
22
    private $factory;
23
24
    protected function setUp(): void
25
    {
26
        $this->factory = new FactoryMethod();
27
    }
28
29
    public function testProducts()
30
    {
31
        $this->assertEquals($this->factory->create(FirstAbstractProduct::class)->getClassName(), FirstAbstractProduct::class);
32
        $this->assertEquals($this->factory->create(SecondAbstractProduct::class)->getClassName(), SecondAbstractProduct::class);
33
    }
34
35
    public function testInstances()
36
    {
37
        $this->assertInstanceOf(FactoryMethodInterface::class, $this->factory);
38
        $this->assertInstanceOf(AbstractProduct::class, $this->factory->create(FirstAbstractProduct::class));
39
        $this->assertInstanceOf(AbstractProduct::class, $this->factory->create(SecondAbstractProduct::class));
40
    }
41
}
42