summaryrefslogtreecommitdiffstats
path: root/tests/support/TestHelper.php
blob: b48f8b0f54155996a99351c4aefb62ea960b022b (plain)
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
<?php

namespace Jasny\Controller;

use Jasny\Controller;
use Jasny\TestHelper as Base;
use PHPUnit_Framework_MockObject_MockObject as MockObject;

/**
 * Additional test methods
 */
trait TestHelper
{
    use Base;

    /**
     * Get the controller class
     *
     * @return string
     */
    protected function getControllerClass()
    {
        return Controller::class;
    }

    /**
     * Get mock for controller
     *
     * @param array $methods  Methods to mock
     * @return Controller|Controller\Session|Controller\View|MockObject
     */
    public function getController($methods = [], $mockClassName = null)
    {
        $class = $this->getControllerClass();

        $builder = $this->getMockBuilder($class)->disableOriginalConstructor();
        if ($methods) {
            $builder->setMethods($methods);
        }

        if (isset($mockClassName)) {
            $builder->setMockClassName($mockClassName);
        }

        $getMock = trait_exists($class) ? 'getMockForTrait' : 'getMockForAbstractClass';
        return $builder->$getMock();
    }
}