File: FactoryTest.php

package info (click to toggle)
phpdox 0.12.0-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 7,672 kB
  • sloc: xml: 80,724; php: 9,167; makefile: 13
file content (129 lines) | stat: -rw-r--r-- 3,710 bytes parent folder | download | duplicates (2)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php declare(strict_types = 1);
namespace TheSeer\phpDox\Tests\Integration;

use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use TheSeer\phpDox\Application;
use TheSeer\phpDox\Collector\Collector;
use TheSeer\phpDox\CollectorConfig;
use TheSeer\phpDox\DocBlock\Parser;
use TheSeer\phpDox\Factory;
use TheSeer\phpDox\FileInfo;
use TheSeer\phpDox\Generator\Generator;
use TheSeer\phpDox\Version;

/**
 * Class FactoryTest
 *
 * @covers \TheSeer\phpDox\Factory
 *
 * @uses   \TheSeer\phpDox\version
 */
class FactoryTest extends TestCase {
    /**
     * @var Factory
     */
    private $factory;

    protected function setUp(): void {
        $this->factory = new Factory(new FileInfo(__DIR__), new Version('0.0'));
    }

    /**
     * @covers \TheSeer\phpDox\Factory::getApplication
     *
     * @uses   \TheSeer\phpDox\Application
     * @uses   \TheSeer\phpDox\ShellProgressLogger
     */
    public function testGetApplication(): void {
        $this->assertInstanceOf(
            Application::class,
            $this->factory->getApplication()
        );
    }

    /**
     * @covers \TheSeer\phpDox\Factory::getCollector
     *
     * @uses   \TheSeer\phpDox\ShellProgressLogger
     * @uses   \TheSeer\phpDox\FileInfo
     * @uses   \TheSeer\phpDox\Collector\Collector
     * @uses   \TheSeer\phpDox\Collector\IndexCollection
     * @uses   \TheSeer\phpDox\Collector\SourceCollection
     * @uses   \TheSeer\phpDox\Collector\Project
     * @uses   \TheSeer\phpDox\Collector\Backend\Factory
     * @uses   \TheSeer\phpDox\Collector\Backend\PHPParser
     * @uses   \TheSeer\phpDox\DocBlock\Parser
     * @uses   \TheSeer\phpDox\ErrorHandler
     */
    public function testGetCollector(): void {
        /** @var CollectorConfig|MockObject $config */
        $config = $this->getMockBuilder(CollectorConfig::class)
            ->disableOriginalConstructor()
            ->getMock();

        $config->expects($this->once())
            ->method('getSourceDirectory')
            ->willReturn(new FileInfo(''));

        $config->expects($this->once())
            ->method('getWorkDirectory')
            ->willReturn(new FileInfo(''));

        $config->expects($this->once())
            ->method('getBackend')
            ->willReturn('parser');

        $this->assertInstanceOf(
            Collector::class,
            $this->factory->getCollector($config)
        );
    }

    /**
     * @covers \TheSeer\phpDox\Factory::getGenerator
     *
     * @uses   \TheSeer\phpDox\Generator\Generator
     * @uses   \TheSeer\phpDox\ShellProgressLogger
     */
    public function testGetGenerator(): void {
        $this->assertInstanceOf(
            Generator::class,
            $this->factory->getGenerator()
        );
    }

    /**
     * @covers \TheSeer\phpDox\Factory::getDocblockFactory
     *
     * @uses   \TheSeer\phpDox\DocBlock\Factory
     */
    public function testgetDoclockFactory(): void {
        $docBlock = $this->factory->getDocblockFactory();

        // lazy initialization included
        $this->assertInstanceOf(
            \TheSeer\phpDox\DocBlock\Factory::class,
            $docBlock
        );

        $this->assertSame($docBlock, $this->factory->getDocblockFactory());
    }

    /**
     * @covers \TheSeer\phpDox\Factory::getDocblockParser
     *
     * @uses   \TheSeer\phpDox\DocBlock\Parser
     */
    public function testgetDoclockParser(): void {
        $docBlock = $this->factory->getDocblockParser();

        // lazy initialization included
        $this->assertInstanceOf(
            Parser::class,
            $docBlock
        );

        $this->assertSame($docBlock, $this->factory->getDocblockParser());
    }
}