Completed
Push — master ( c5c436...b453a3 )
by Ruud
15:58
created

NodeBundle/Tests/unit/Entity/StructureNodeTest.php (1 issue)

Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Kunstmaan\NodeBundle\Tests\Entity;
4
5
use Kunstmaan\NodeBundle\Entity\AbstractPage;
6
use Kunstmaan\NodeBundle\Entity\HasNodeInterface;
7
use Kunstmaan\NodeBundle\Entity\StructureNode;
8
use Kunstmaan\NodeBundle\Form\PageAdminType;
9
use Kunstmaan\NodeBundle\Helper\RenderContext;
10
use PHPUnit\Framework\TestCase;
11
use Symfony\Component\DependencyInjection\Container;
12
use Symfony\Component\DependencyInjection\ContainerInterface;
13
use Symfony\Component\HttpFoundation\Request;
14
15
class TestStructureNode extends StructureNode
16
{
17
    public function getPossibleChildTypes()
18
    {
19
        return [];
20
    }
21
22
    public function service(ContainerInterface $container, Request $request, RenderContext $context)
23
    {
24
        $context['test'] = 'test';
25
    }
26
}
27
28
class TestNode extends AbstractPage
29
{
30
    public function getPossibleChildTypes()
31
    {
32
        return [];
33
    }
34
}
35
36
/**
37
 * Class StructureNodeTest
38
 */
39
class StructureNodeTest extends TestCase
40
{
41
    public function testIsStructureNode()
42
    {
43
        $structureNode = new TestStructureNode();
44
        $this->assertTrue($structureNode->isStructureNode());
45
46
        $node = new TestNode();
47
        $this->assertFalse($node->isStructureNode());
48
    }
49
50
    public function testIsOnline()
51
    {
52
        $structureNode = new TestStructureNode();
53
        $this->assertFalse($structureNode->isOnline());
54
    }
55
56
    public function testGetSetPageTitle()
57
    {
58
        $node = new TestStructureNode();
59
        $node->setTitle('The Title');
60
        $this->assertEquals('The Title', $node->getPageTitle());
61
        $this->assertEquals('The Title', $node->getTitle());
62
        $this->assertEquals('The Title', $node->__toString());
63
    }
64
65
    public function testGetSetParent()
66
    {
67
        $entity = $this->createMock(HasNodeInterface::class);
68
        $node = new TestStructureNode();
69
        $node->setParent($entity);
70
        $this->assertInstanceOf(get_class($entity), $node->getParent());
71
    }
72
73
    public function testGetDefaultAdminType()
74
    {
75
        $node = new TestStructureNode();
76
        $this->assertEquals(PageAdminType::class, $node->getDefaultAdminType());
77
    }
78
79
    /**
80
     * @group legacy
81
     */
82
    public function testService()
83
    {
84
        $renderContext = new RenderContext();
85
86
        $node = new TestStructureNode();
87
        $node->service(new Container(), new Request(), $renderContext);
0 ignored issues
show
The call to the method Kunstmaan\NodeBundle\Tes...tructureNode::service() seems un-needed as the method has no side-effects.

PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left.

Let’s take a look at an example:

class User
{
    private $email;

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
    }
}

If we look at the getEmail() method, we can see that it has no side-effect. Whether you call this method or not, no future calls to other methods are affected by this. As such code as the following is useless:

$user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.

On the hand, if we look at the setEmail(), this method _has_ side-effects. In the following case, we could not remove the method call:

$user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
                                 // instance variable).
Loading history...
88
89
        $this->assertArrayHasKey('test', $renderContext->getArrayCopy());
90
    }
91
}
92