Completed
Push — master ( 0c48af...84ef19 )
by Johannes
02:34
created

ParseContentExecutorFactoryTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 42
Duplicated Lines 28.57 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 3
Bugs 0 Features 2
Metric Value
wmc 3
c 3
b 0
f 2
lcom 1
cbo 5
dl 12
loc 42
rs 10

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
/**
3
 * Lichtenwallner  (https://lichtenwallner.at)
4
 *
5
 * @see https://github.com/jolicht/markdown-cms for the canonical source repository
6
 * @license https://github.com/jolicht/markdown-cms/blob/master/LICENSE MIT
7
 * @copyright Copyright (c) Johannes Lichtenwallner
8
 */
9
declare(strict_types = 1);
10
namespace JolichtTest\MarkdownCms\Parser;
11
12
use Jolicht\MarkdownCms\ModuleConfig;
13
use Jolicht\MarkdownCms\Parser\ParseContentExecutor;
14
use Jolicht\MarkdownCms\Parser\ContentParser;
15
use Jolicht\MarkdownCms\Parser\Observer\SaveContentConfigObserver;
16
use Jolicht\MarkdownCms\Parser\Observer\SitemapObserver;
17
use PHPUnit\Framework\TestCase;
18
use Reddogs\Test\AuraDi\ContainerAwareTrait;
19
use Aura\Di\ContainerConfig;
20
use JolichtTest\MarkdownCms\TestConfig;
21
use JolichtTest\MarkdownCms\ExpressiveAuraConfig;
22
use JolichtTest\MarkdownCms\TestContainerConfig;
23
use Jolicht\MarkdownCms\Parser\ParseContentExecutorFactory;
24
25
class ParseContentExecutorFactoryTest extends TestCase
26
{
27
    use ContainerAwareTrait;
28
29
    private $factory;
30
31
    protected function setUp()
32
    {
33
        $this->setConfigProviders([ModuleConfig::class, TestConfig::class]);
34
        $this->setContainerConfigs([
35
            \Jolicht\MarkdownCms\ContainerConfig::class,
36
            ExpressiveAuraConfig::class,
37
            TestContainerConfig::class
38
        ]);
39
        $this->setUpContainer();
40
41
        $this->factory = new ParseContentExecutorFactory();
42
    }
43
44
    public function testContainerHasService()
45
    {
46
        $this->assertTrue($this->getContainer()->has(ParseContentExecutor::class));
47
    }
48
49
    public function testCreateService()
50
    {
51
        $container = $this->getContainer();
52
//         $contentParser = $this->getMockBuilder(ContentParser::class)->disableOriginalConstructor()->getMock();
53
//         $container->setAllowOverride(true);
54
//         $container->setService(ContentParser::class, $contentParser);
55
//         $container->setAllowOverride(false);
56
57
        $executor = $container->get(ContentParser::class);
58
        $executor = $this->factory->__invoke($container);
59
        $this->assertInstanceOf(ParseContentExecutor::class, $executor);
60
        $this->assertSame($container->get(ContentParser::class), $executor->getContentParser());
61
        $observers = $executor->getObservers();
62
        $this->assertCount(2, $observers);
63
        $this->assertInstanceOf(SaveContentConfigObserver::class, $observers[0]);
64
        $this->assertInstanceOf(SitemapObserver::class, $observers[1]);
65
    }
66
}