InflectorTest.php 3.94 KB
Newer Older
Antonio Ramirez committed
1 2 3 4 5 6 7 8 9 10 11 12
<?php

namespace yiiunit\framework\helpers;

use Yii;
use yii\helpers\Inflector;
use yiiunit\TestCase;

class InflectorTest extends TestCase
{
    public function testPluralize()
    {
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
        $testData = array(
            'move' => 'moves',
            'foot' => 'feet',
            'child' => 'children',
            'human' => 'humans',
            'man' => 'men',
            'staff' => 'staff',
            'tooth' => 'teeth',
            'person' => 'people',
            'mouse' => 'mice',
            'touch' => 'touches',
            'hash' => 'hashes',
            'shelf' => 'shelves',
            'potato' => 'potatoes',
            'bus' => 'buses',
            'test' => 'tests',
            'car' => 'cars',
        );

        foreach ($testData as $testIn => $testOut) {
            $this->assertEquals($testOut, Inflector::pluralize($testIn));
            $this->assertEquals(ucfirst($testOut), ucfirst(Inflector::pluralize($testIn)));
        }
Antonio Ramirez committed
36 37 38 39
    }

    public function testSingularize()
    {
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
		$testData = array(
			'moves' => 'move',
			'feet' => 'foot',
			'children' => 'child',
			'humans' => 'human',
			'men' => 'man',
			'staff' => 'staff',
			'teeth' => 'tooth',
			'people' => 'person',
			'mice' => 'mouse',
			'touches' => 'touch',
			'hashes' => 'hash',
			'shelves' => 'shelf',
			'potatoes' => 'potato',
			'buses' => 'bus',
			'tests' => 'test',
			'cars' => 'car',
		);
		foreach ($testData as $testIn => $testOut) {
Antonio Ramirez committed
59 60
			$this->assertEquals($testOut, Inflector::singularize($testIn));
			$this->assertEquals(ucfirst($testOut), ucfirst(Inflector::singularize($testIn)));
61
		}
Antonio Ramirez committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
    }

    public function testTitleize()
    {
        $this->assertEquals("Me my self and i", Inflector::titleize('MeMySelfAndI'));
        $this->assertEquals("Me My Self And I", Inflector::titleize('MeMySelfAndI', true));
    }

    public function testCamelize()
    {
        $this->assertEquals("MeMySelfAndI", Inflector::camelize('me my_self-andI'));
    }

    public function testUnderscore()
    {
Antonio Ramirez committed
77
        $this->assertEquals("me_my_self_and_i", Inflector::underscore('MeMySelfAndI'));
Antonio Ramirez committed
78 79
    }

80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
    public function testCamel2words()
    {
        $this->assertEquals('Camel Case', Inflector::camel2words('camelCase'));
        $this->assertEquals('Lower Case', Inflector::camel2words('lower_case'));
        $this->assertEquals('Tricky Stuff It Is Testing', Inflector::camel2words(' tricky_stuff.it-is testing... '));
    }

    public function testCamel2id()
    {
        $this->assertEquals('post-tag', Inflector::camel2id('PostTag'));
        $this->assertEquals('post_tag', Inflector::camel2id('PostTag', '_'));

        $this->assertEquals('post-tag', Inflector::camel2id('postTag'));
        $this->assertEquals('post_tag', Inflector::camel2id('postTag', '_'));
    }

    public function testId2camel()
    {
        $this->assertEquals('PostTag', Inflector::id2camel('post-tag'));
        $this->assertEquals('PostTag', Inflector::id2camel('post_tag', '_'));

        $this->assertEquals('PostTag', Inflector::id2camel('post-tag'));
        $this->assertEquals('PostTag', Inflector::id2camel('post_tag', '_'));
    }

Antonio Ramirez committed
105 106 107
    public function testHumanize()
    {
        $this->assertEquals("Me my self and i", Inflector::humanize('me_my_self_and_i'));
Antonio Ramirez committed
108
        $this->assertEquals("Me My Self And I", Inflector::humanize('me_my_self_and_i', true));
Antonio Ramirez committed
109 110
    }

Antonio Ramirez committed
111 112 113 114 115 116 117 118 119 120 121 122
    public function testVariablize()
    {
        $this->assertEquals("customerTable", Inflector::variablize('customer_table'));
    }

    public function testTableize()
    {
        $this->assertEquals("customer_tables", Inflector::tableize('customerTable'));
    }

    public function testSlug()
    {
Antonio Ramirez committed
123
        $this->assertEquals("this-is-a-title", Inflector::slug('this is a title'));
Antonio Ramirez committed
124 125 126 127 128 129 130 131 132
    }

    public function testClassify()
    {
        $this->assertEquals("CustomerTable", Inflector::classify('customer_tables'));
    }

    public function testOrdinalize()
    {
Antonio Ramirez committed
133
        $this->assertEquals('21st', Inflector::ordinalize('21'));
Antonio Ramirez committed
134
    }
Antonio Ramirez committed
135
}