InflectorTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 21
dl 0
loc 68
rs 10
c 2
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A testControllerToURL() 0 4 1
A providerURLController() 0 8 1
A testPluralize() 0 8 1
A setUp() 0 4 1
A testURLToController() 0 3 1
A testClassToTable() 0 4 1
1
<?php
2
3
namespace Nip\Inflector\Tests;
4
5
use Nip\Inflector\Inflector;
6
7
/**
8
 * Class InflectorTest
9
 * @package Nip\Tests\Inflector
10
 */
11
class InflectorTest extends AbstractTest
12
{
13
14
    /**
15
     * @var Inflector
16
     */
17
    protected $inflector;
18
19
    /**
20
     * @return array
21
     */
22
    public function providerURLController()
23
    {
24
        return [
25
            ['user_groups', 'UserGroupsController'],
26
            ['async-user_groups', 'Async_UserGroupsController'],
27
            ['modal-users', 'Modal_UsersController'],
28
            ['modal-users', 'Modal_UsersController'],
29
            ['users', 'UsersController'],
30
        ];
31
    }
32
33
    /**
34
     * @dataProvider providerClassTable
35
     * @param $table
36
     * @param $class
37
     */
38
    public function testClassToTable($table, $class)
39
    {
40
        $table = strtolower(str_replace('\\', '-', $table));
41
        self::assertEquals($table, $this->inflector->unclassify($class));
42
    }
43
44
    /**
45
     * @dataProvider providerURLController
46
     * @param $url
47
     * @param $controller
48
     */
49
    public function testURLToController($url, $controller)
50
    {
51
        self::assertEquals($controller, $this->inflector->classify($url) . "Controller");
52
    }
53
54
    /**
55
     * @dataProvider providerURLController
56
     * @param $url
57
     * @param $controller
58
     */
59
    public function testControllerToURL($url, $controller)
60
    {
61
        $class = str_replace("Controller", "", $controller);
62
        self::assertEquals($url, $this->inflector->unclassify($class));
63
    }
64
65
    public function testPluralize()
66
    {
67
        self::assertEquals("mice", $this->inflector->pluralize("mouse"));
68
        self::assertEquals("people", $this->inflector->pluralize("person"));
69
        self::assertEquals("scos", $this->inflector->pluralize("sco"));
70
        self::assertEquals("statuses", $this->inflector->pluralize("status"));
71
        self::assertEquals("companies", $this->inflector->pluralize("company"));
72
        self::assertEquals("companies", $this->inflector->pluralize("companies"));
73
    }
74
75
    protected function setUp(): void
76
    {
77
        parent::setUp();
78
        $this->inflector = new Inflector();
79
    }
80
}
81