Browse Source

Use dataProvider.

ADmad 10 years ago
parent
commit
fd3e168f17
1 changed files with 184 additions and 157 deletions
  1. 184 157
      tests/TestCase/Utility/InflectorTest.php

+ 184 - 157
tests/TestCase/Utility/InflectorTest.php

@@ -89,94 +89,108 @@ class InflectorTest extends TestCase
     /**
      * testInflectingSingulars method
      *
+     * @dataProvider singularizeProvider
      * @return void
      */
-    public function testInflectingSingulars()
+    public function testInflectingSingulars($singular, $plural)
     {
-        $this->assertEquals('categoria', Inflector::singularize('categorias'));
-        $this->assertEquals('menu', Inflector::singularize('menus'));
-        $this->assertEquals('news', Inflector::singularize('news'));
-        $this->assertEquals('food_menu', Inflector::singularize('food_menus'));
-        $this->assertEquals('Menu', Inflector::singularize('Menus'));
-        $this->assertEquals('FoodMenu', Inflector::singularize('FoodMenus'));
-        $this->assertEquals('house', Inflector::singularize('houses'));
-        $this->assertEquals('powerhouse', Inflector::singularize('powerhouses'));
-        $this->assertEquals('quiz', Inflector::singularize('quizzes'));
-        $this->assertEquals('Bus', Inflector::singularize('Buses'));
-        $this->assertEquals('bus', Inflector::singularize('buses'));
-        $this->assertEquals('matrix_row', Inflector::singularize('matrix_rows'));
-        $this->assertEquals('matrix', Inflector::singularize('matrices'));
-        $this->assertEquals('vertex', Inflector::singularize('vertices'));
-        $this->assertEquals('index', Inflector::singularize('indices'));
-        $this->assertEquals('Alias', Inflector::singularize('Aliases'));
-        $this->assertEquals('Alias', Inflector::singularize('Alias'));
-        $this->assertEquals('Media', Inflector::singularize('Media'));
-        $this->assertEquals('NodeMedia', Inflector::singularize('NodeMedia'));
-        $this->assertEquals('alumnus', Inflector::singularize('alumni'));
-        $this->assertEquals('bacillus', Inflector::singularize('bacilli'));
-        $this->assertEquals('cactus', Inflector::singularize('cacti'));
-        $this->assertEquals('focus', Inflector::singularize('foci'));
-        $this->assertEquals('fungus', Inflector::singularize('fungi'));
-        $this->assertEquals('nucleus', Inflector::singularize('nuclei'));
-        $this->assertEquals('octopus', Inflector::singularize('octopuses'));
-        $this->assertEquals('radius', Inflector::singularize('radii'));
-        $this->assertEquals('stimulus', Inflector::singularize('stimuli'));
-        $this->assertEquals('syllabus', Inflector::singularize('syllabi'));
-        $this->assertEquals('terminus', Inflector::singularize('termini'));
-        $this->assertEquals('virus', Inflector::singularize('viruses'));
-        $this->assertEquals('person', Inflector::singularize('people'));
-        $this->assertEquals('glove', Inflector::singularize('gloves'));
-        $this->assertEquals('dove', Inflector::singularize('doves'));
-        $this->assertEquals('life', Inflector::singularize('lives'));
-        $this->assertEquals('knife', Inflector::singularize('knives'));
-        $this->assertEquals('wolf', Inflector::singularize('wolves'));
-        $this->assertEquals('slave', Inflector::singularize('slaves'));
-        $this->assertEquals('shelf', Inflector::singularize('shelves'));
-        $this->assertEquals('taxi', Inflector::singularize('taxis'));
-        $this->assertEquals('tax', Inflector::singularize('taxes'));
-        $this->assertEquals('Tax', Inflector::singularize('Taxes'));
-        $this->assertEquals('AwesomeTax', Inflector::singularize('AwesomeTaxes'));
-        $this->assertEquals('fax', Inflector::singularize('faxes'));
-        $this->assertEquals('wax', Inflector::singularize('waxes'));
-        $this->assertEquals('niche', Inflector::singularize('niches'));
-        $this->assertEquals('cave', Inflector::singularize('caves'));
-        $this->assertEquals('grave', Inflector::singularize('graves'));
-        $this->assertEquals('wave', Inflector::singularize('waves'));
-        $this->assertEquals('bureau', Inflector::singularize('bureaus'));
-        $this->assertEquals('genetic_analysis', Inflector::singularize('genetic_analyses'));
-        $this->assertEquals('doctor_diagnosis', Inflector::singularize('doctor_diagnoses'));
-        $this->assertEquals('paranthesis', Inflector::singularize('parantheses'));
-        $this->assertEquals('Cause', Inflector::singularize('Causes'));
-        $this->assertEquals('colossus', Inflector::singularize('colossuses'));
-        $this->assertEquals('diagnosis', Inflector::singularize('diagnoses'));
-        $this->assertEquals('basis', Inflector::singularize('bases'));
-        $this->assertEquals('analysis', Inflector::singularize('analyses'));
-        $this->assertEquals('curve', Inflector::singularize('curves'));
-        $this->assertEquals('cafe', Inflector::singularize('cafes'));
-        $this->assertEquals('roof', Inflector::singularize('roofs'));
-        $this->assertEquals('foe', Inflector::singularize('foes'));
-        $this->assertEquals('database', Inflector::singularize('databases'));
-        $this->assertEquals('cookie', Inflector::singularize('cookies'));
-        $this->assertEquals('thief', Inflector::singularize('thieves'));
-        $this->assertEquals('potato', Inflector::singularize('potatoes'));
-        $this->assertEquals('hero', Inflector::singularize('heroes'));
-        $this->assertEquals('buffalo', Inflector::singularize('buffaloes'));
-        $this->assertEquals('baby', Inflector::singularize('babies'));
-        $this->assertEquals('tooth', Inflector::singularize('teeth'));
-        $this->assertEquals('goose', Inflector::singularize('geese'));
-        $this->assertEquals('foot', Inflector::singularize('feet'));
-        $this->assertEquals('objective', Inflector::singularize('objectives'));
-        $this->assertEquals('archive', Inflector::singularize('archives'));
-        $this->assertEquals('brief', Inflector::singularize('briefs'));
-        $this->assertEquals('quota', Inflector::singularize('quotas'));
-        $this->assertEquals('curve', Inflector::singularize('curves'));
-        $this->assertEquals('body_curve', Inflector::singularize('body_curves'));
-        $this->assertEquals('metadata', Inflector::singularize('metadata'));
-        $this->assertEquals('files_metadata', Inflector::singularize('files_metadata'));
-        $this->assertEquals('address', Inflector::singularize('addresses'));
-        $this->assertEquals('sieve', Inflector::singularize('sieves'));
-        $this->assertEquals('blue_octopus', Inflector::singularize('blue_octopuses'));
-        $this->assertEquals('', Inflector::singularize(''));
+        $this->assertEquals($singular, Inflector::singularize($plural));
+    }
+
+    /**
+     * Data provider for testing singularize()
+     *
+     * @return array
+     */
+    public function singularizeProvider()
+    {
+        return [
+            ['categoria', 'categorias'],
+            ['menu', 'menus'],
+            ['news', 'news'],
+            ['food_menu', 'food_menus'],
+            ['Menu', 'Menus'],
+            ['FoodMenu', 'FoodMenus'],
+            ['house', 'houses'],
+            ['powerhouse', 'powerhouses'],
+            ['quiz', 'quizzes'],
+            ['Bus', 'Buses'],
+            ['bus', 'buses'],
+            ['matrix_row', 'matrix_rows'],
+            ['matrix', 'matrices'],
+            ['vertex', 'vertices'],
+            ['index', 'indices'],
+            ['Alias', 'Aliases'],
+            ['Alias', 'Alias'],
+            ['Media', 'Media'],
+            ['NodeMedia', 'NodeMedia'],
+            ['alumnus', 'alumni'],
+            ['bacillus', 'bacilli'],
+            ['cactus', 'cacti'],
+            ['focus', 'foci'],
+            ['fungus', 'fungi'],
+            ['nucleus', 'nuclei'],
+            ['octopus', 'octopuses'],
+            ['radius', 'radii'],
+            ['stimulus', 'stimuli'],
+            ['syllabus', 'syllabi'],
+            ['terminus', 'termini'],
+            ['virus', 'viruses'],
+            ['person', 'people'],
+            ['glove', 'gloves'],
+            ['dove', 'doves'],
+            ['life', 'lives'],
+            ['knife', 'knives'],
+            ['wolf', 'wolves'],
+            ['slave', 'slaves'],
+            ['shelf', 'shelves'],
+            ['taxi', 'taxis'],
+            ['tax', 'taxes'],
+            ['Tax', 'Taxes'],
+            ['AwesomeTax', 'AwesomeTaxes'],
+            ['fax', 'faxes'],
+            ['wax', 'waxes'],
+            ['niche', 'niches'],
+            ['cave', 'caves'],
+            ['grave', 'graves'],
+            ['wave', 'waves'],
+            ['bureau', 'bureaus'],
+            ['genetic_analysis', 'genetic_analyses'],
+            ['doctor_diagnosis', 'doctor_diagnoses'],
+            ['paranthesis', 'parantheses'],
+            ['Cause', 'Causes'],
+            ['colossus', 'colossuses'],
+            ['diagnosis', 'diagnoses'],
+            ['basis', 'bases'],
+            ['analysis', 'analyses'],
+            ['curve', 'curves'],
+            ['cafe', 'cafes'],
+            ['roof', 'roofs'],
+            ['foe', 'foes'],
+            ['database', 'databases'],
+            ['cookie', 'cookies'],
+            ['thief', 'thieves'],
+            ['potato', 'potatoes'],
+            ['hero', 'heroes'],
+            ['buffalo', 'buffaloes'],
+            ['baby', 'babies'],
+            ['tooth', 'teeth'],
+            ['goose', 'geese'],
+            ['foot', 'feet'],
+            ['objective', 'objectives'],
+            ['archive', 'archives'],
+            ['brief', 'briefs'],
+            ['quota', 'quotas'],
+            ['curve', 'curves'],
+            ['body_curve', 'body_curves'],
+            ['metadata', 'metadata'],
+            ['files_metadata', 'files_metadata'],
+            ['address', 'addresses'],
+            ['sieve', 'sieves'],
+            ['blue_octopus', 'blue_octopuses'],
+            ['chef', 'chefs'],
+            ['', ''],
+        ];
     }
 
     /**
@@ -204,81 +218,94 @@ class InflectorTest extends TestCase
     /**
      * testInflectingPlurals method
      *
+     * @dataProvider pluralizeProvider
      * @return void
      */
-    public function testInflectingPlurals()
+    public function testInflectingPlurals($plural, $singular)
+    {
+        $this->assertEquals($plural, Inflector::pluralize($singular));
+    }
+
+    /**
+     * Data provider for testing pluralize()
+     *
+     * @return array
+     */
+    public function pluralizeProvider()
     {
-        $this->assertEquals('axmen', Inflector::pluralize('axman'));
-        $this->assertEquals('men', Inflector::pluralize('man'));
-        $this->assertEquals('women', Inflector::pluralize('woman'));
-        $this->assertEquals('humans', Inflector::pluralize('human'));
-        $this->assertEquals('axmen', Inflector::pluralize('axman'));
-        $this->assertEquals('men', Inflector::pluralize('man'));
-        $this->assertEquals('women', Inflector::pluralize('woman'));
-        $this->assertEquals('humans', Inflector::pluralize('human'));
-        $this->assertEquals('categorias', Inflector::pluralize('categoria'));
-        $this->assertEquals('houses', Inflector::pluralize('house'));
-        $this->assertEquals('powerhouses', Inflector::pluralize('powerhouse'));
-        $this->assertEquals('Buses', Inflector::pluralize('Bus'));
-        $this->assertEquals('buses', Inflector::pluralize('bus'));
-        $this->assertEquals('menus', Inflector::pluralize('menu'));
-        $this->assertEquals('news', Inflector::pluralize('news'));
-        $this->assertEquals('food_menus', Inflector::pluralize('food_menu'));
-        $this->assertEquals('Menus', Inflector::pluralize('Menu'));
-        $this->assertEquals('FoodMenus', Inflector::pluralize('FoodMenu'));
-        $this->assertEquals('quizzes', Inflector::pluralize('quiz'));
-        $this->assertEquals('matrix_rows', Inflector::pluralize('matrix_row'));
-        $this->assertEquals('matrices', Inflector::pluralize('matrix'));
-        $this->assertEquals('vertices', Inflector::pluralize('vertex'));
-        $this->assertEquals('indices', Inflector::pluralize('index'));
-        $this->assertEquals('Aliases', Inflector::pluralize('Alias'));
-        $this->assertEquals('Aliases', Inflector::pluralize('Aliases'));
-        $this->assertEquals('Media', Inflector::pluralize('Media'));
-        $this->assertEquals('NodeMedia', Inflector::pluralize('NodeMedia'));
-        $this->assertEquals('alumni', Inflector::pluralize('alumnus'));
-        $this->assertEquals('bacilli', Inflector::pluralize('bacillus'));
-        $this->assertEquals('cacti', Inflector::pluralize('cactus'));
-        $this->assertEquals('foci', Inflector::pluralize('focus'));
-        $this->assertEquals('fungi', Inflector::pluralize('fungus'));
-        $this->assertEquals('nuclei', Inflector::pluralize('nucleus'));
-        $this->assertEquals('octopuses', Inflector::pluralize('octopus'));
-        $this->assertEquals('radii', Inflector::pluralize('radius'));
-        $this->assertEquals('stimuli', Inflector::pluralize('stimulus'));
-        $this->assertEquals('syllabi', Inflector::pluralize('syllabus'));
-        $this->assertEquals('termini', Inflector::pluralize('terminus'));
-        $this->assertEquals('viruses', Inflector::pluralize('virus'));
-        $this->assertEquals('people', Inflector::pluralize('person'));
-        $this->assertEquals('people', Inflector::pluralize('people'));
-        $this->assertEquals('gloves', Inflector::pluralize('glove'));
-        $this->assertEquals('crises', Inflector::pluralize('crisis'));
-        $this->assertEquals('taxes', Inflector::pluralize('tax'));
-        $this->assertEquals('waves', Inflector::pluralize('wave'));
-        $this->assertEquals('bureaus', Inflector::pluralize('bureau'));
-        $this->assertEquals('cafes', Inflector::pluralize('cafe'));
-        $this->assertEquals('roofs', Inflector::pluralize('roof'));
-        $this->assertEquals('foes', Inflector::pluralize('foe'));
-        $this->assertEquals('cookies', Inflector::pluralize('cookie'));
-        $this->assertEquals('wolves', Inflector::pluralize('wolf'));
-        $this->assertEquals('thieves', Inflector::pluralize('thief'));
-        $this->assertEquals('potatoes', Inflector::pluralize('potato'));
-        $this->assertEquals('heroes', Inflector::pluralize('hero'));
-        $this->assertEquals('buffaloes', Inflector::pluralize('buffalo'));
-        $this->assertEquals('teeth', Inflector::pluralize('tooth'));
-        $this->assertEquals('geese', Inflector::pluralize('goose'));
-        $this->assertEquals('feet', Inflector::pluralize('foot'));
-        $this->assertEquals('objectives', Inflector::pluralize('objective'));
-        $this->assertEquals('briefs', Inflector::pluralize('brief'));
-        $this->assertEquals('quotas', Inflector::pluralize('quota'));
-        $this->assertEquals('curves', Inflector::pluralize('curve'));
-        $this->assertEquals('body_curves', Inflector::pluralize('body_curve'));
-        $this->assertEquals('metadata', Inflector::pluralize('metadata'));
-        $this->assertEquals('files_metadata', Inflector::pluralize('files_metadata'));
-        $this->assertEquals('stadia', Inflector::pluralize('stadia'));
-        $this->assertEquals('Addresses', Inflector::pluralize('Address'));
-        $this->assertEquals('sieves', Inflector::pluralize('sieve'));
-        $this->assertEquals('blue_octopuses', Inflector::pluralize('blue_octopus'));
-        $this->assertEquals('chefs', Inflector::pluralize('chef'));
-        $this->assertEquals('', Inflector::pluralize(''));
+        return [
+            ['axmen', 'axman'],
+            ['men', 'man'],
+            ['women', 'woman'],
+            ['humans', 'human'],
+            ['axmen', 'axman'],
+            ['men', 'man'],
+            ['women', 'woman'],
+            ['humans', 'human'],
+            ['categorias', 'categoria'],
+            ['houses', 'house'],
+            ['powerhouses', 'powerhouse'],
+            ['Buses', 'Bus'],
+            ['buses', 'bus'],
+            ['menus', 'menu'],
+            ['news', 'news'],
+            ['food_menus', 'food_menu'],
+            ['Menus', 'Menu'],
+            ['FoodMenus', 'FoodMenu'],
+            ['quizzes', 'quiz'],
+            ['matrix_rows', 'matrix_row'],
+            ['matrices', 'matrix'],
+            ['vertices', 'vertex'],
+            ['indices', 'index'],
+            ['Aliases', 'Alias'],
+            ['Aliases', 'Aliases'],
+            ['Media', 'Media'],
+            ['NodeMedia', 'NodeMedia'],
+            ['alumni', 'alumnus'],
+            ['bacilli', 'bacillus'],
+            ['cacti', 'cactus'],
+            ['foci', 'focus'],
+            ['fungi', 'fungus'],
+            ['nuclei', 'nucleus'],
+            ['octopuses', 'octopus'],
+            ['radii', 'radius'],
+            ['stimuli', 'stimulus'],
+            ['syllabi', 'syllabus'],
+            ['termini', 'terminus'],
+            ['viruses', 'virus'],
+            ['people', 'person'],
+            ['people', 'people'],
+            ['gloves', 'glove'],
+            ['crises', 'crisis'],
+            ['taxes', 'tax'],
+            ['waves', 'wave'],
+            ['bureaus', 'bureau'],
+            ['cafes', 'cafe'],
+            ['roofs', 'roof'],
+            ['foes', 'foe'],
+            ['cookies', 'cookie'],
+            ['wolves', 'wolf'],
+            ['thieves', 'thief'],
+            ['potatoes', 'potato'],
+            ['heroes', 'hero'],
+            ['buffaloes', 'buffalo'],
+            ['teeth', 'tooth'],
+            ['geese', 'goose'],
+            ['feet', 'foot'],
+            ['objectives', 'objective'],
+            ['briefs', 'brief'],
+            ['quotas', 'quota'],
+            ['curves', 'curve'],
+            ['body_curves', 'body_curve'],
+            ['metadata', 'metadata'],
+            ['files_metadata', 'files_metadata'],
+            ['stadia', 'stadia'],
+            ['Addresses', 'Address'],
+            ['sieves', 'sieve'],
+            ['blue_octopuses', 'blue_octopus'],
+            ['chefs', 'chef'],
+            ['', ''],
+        ];
     }
 
     /**