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

FactoryMethodTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 3
eloc 8
dl 0
loc 23
rs 10
c 4
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testInstances() 0 5 1
A testProducts() 0 4 1
A setUp() 0 3 1
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