Failed Conditions
Branch feature/refactoring-samurai (8cc7c1)
by Giuliano
03:47
created

IncluderTestCase   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 58
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testInitInclude() 0 10 1
A assertDirectiveType() 0 5 1
A assertDirectiveSentence() 0 5 1
A assertAlias() 0 5 1
1
<?php
2
3
namespace Maestriam\Samurai\Tests\Unit\Entities\Includer;
4
5
use Maestriam\Samurai\Entities\Theme;
6
use Maestriam\Samurai\Tests\TestCase;
7
use Maestriam\Samurai\Entities\Includer;
8
use stdClass;
9
10
class IncluderTestCase extends TestCase
11
{
12
    /**
13
     * Verifica se a instância de um novo include foi definida de maneira correta
14
     * e possui todas as suas funções básicas
15
     *
16
     * @return void
17
     */
18
    public function testInitInclude()
19
    {
20
        $theme = new Theme('bands/guns-n-roses');
21
        
22
        $sentence = 'tables/table';
23
        $include  = new Includer($theme, $sentence);
24
25
        $this->assertInstanceOf(Includer::class, $include);
26
        $this->assertDirectiveSentence($include, $sentence);
27
        $this->assertDirectiveType($include);
28
    }
29
30
    /**
31
     * Verifica se a sentença definida para a diretiva está correta
32
     *
33
     * @param Includer $include
34
     * @param string $sentence
35
     * @return void
36
     */
37
    protected function assertDirectiveSentence(Includer $include, string $sentence)
38
    {
39
        $this->assertIsString($include->sentence());
40
        $this->assertObjectHasFunction($include, 'sentence');
41
        $this->assertEquals($include->sentence(), $sentence);
42
    }
43
    
44
    /**
45
     * Verifica se o tipo definido para a diretiva está correta
46
     *
47
     * @param Includer $include
48
     * @return void
49
     */
50
    protected function assertDirectiveType(Includer $include)
51
    {
52
        $this->assertIsString($include->type());
53
        $this->assertEquals($include->type(), 'include');        
54
        $this->assertObjectHasFunction($include, 'type');
55
    }
56
    
57
    /**
58
     * Verifica se o alias para a diretiva está correta.  
59
     *
60
     * @param Includer $include
61
     * @return void
62
     */
63
    protected function assertAlias(Includer $include)
64
    {
65
        $this->assertInstanceOf(stdClass::class, $include->alias());
66
        $this->assertObjectHasAttribute('kebab', $include->alias());
67
        $this->assertObjectHasAttribute('camel', $include->alias());
68
    }
69
}