You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							147 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							147 lines
						
					
					
						
							4.1 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\framework\helpers; | |
|  | |
| use Yii; | |
| use yii\helpers\Inflector; | |
| use yiiunit\TestCase; | |
|  | |
| /** | |
|  * @group helpers | |
|  */ | |
| class InflectorTest extends TestCase | |
| { | |
| 	public function testPluralize() | |
| 	{ | |
| 		$testData = [ | |
| 			'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))); | |
| 		} | |
| 	} | |
|  | |
| 	public function testSingularize() | |
| 	{ | |
| 		$testData = [ | |
| 			'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) { | |
| 			$this->assertEquals($testOut, Inflector::singularize($testIn)); | |
| 			$this->assertEquals(ucfirst($testOut), ucfirst(Inflector::singularize($testIn))); | |
| 		} | |
| 	} | |
|  | |
| 	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')); | |
| 		$this->assertEquals("QweQweEwq", Inflector::camelize('qwe qwe^ewq')); | |
| 	} | |
|  | |
| 	public function testUnderscore() | |
| 	{ | |
| 		$this->assertEquals("me_my_self_and_i", Inflector::underscore('MeMySelfAndI')); | |
| 	} | |
|  | |
| 	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', '_')); | |
| 	} | |
|  | |
| 	public function testHumanize() | |
| 	{ | |
| 		$this->assertEquals("Me my self and i", Inflector::humanize('me_my_self_and_i')); | |
| 		$this->assertEquals("Me My Self And I", Inflector::humanize('me_my_self_and_i', true)); | |
| 	} | |
|  | |
| 	public function testVariablize() | |
| 	{ | |
| 		$this->assertEquals("customerTable", Inflector::variablize('customer_table')); | |
| 	} | |
|  | |
| 	public function testTableize() | |
| 	{ | |
| 		$this->assertEquals("customer_tables", Inflector::tableize('customerTable')); | |
| 	} | |
|  | |
| 	public function testSlug() | |
| 	{ | |
| 		$this->assertEquals("privet-hello-jii-framework-kak-dela-how-it-goes", Inflector::slug('Привет Hello Йии-- Framework !--- Как дела ? How it goes ?')); | |
|  | |
| 		$this->assertEquals("this-is-a-title", Inflector::slug('this is a title')); | |
| 	} | |
|  | |
| 	public function testClassify() | |
| 	{ | |
| 		$this->assertEquals("CustomerTable", Inflector::classify('customer_tables')); | |
| 	} | |
|  | |
| 	public function testOrdinalize() | |
| 	{ | |
| 		$this->assertEquals('21st', Inflector::ordinalize('21')); | |
| 		$this->assertEquals('22nd', Inflector::ordinalize('22')); | |
| 		$this->assertEquals('23rd', Inflector::ordinalize('23')); | |
| 		$this->assertEquals('24th', Inflector::ordinalize('24')); | |
| 		$this->assertEquals('25th', Inflector::ordinalize('25')); | |
| 		$this->assertEquals('111th', Inflector::ordinalize('111')); | |
| 		$this->assertEquals('113th', Inflector::ordinalize('113')); | |
| 	} | |
| }
 | |
| 
 |