InflectorTest::testClassToTable()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 2
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