Browse Source

Fix: Make sure that data providers are named correctly

Andreas Möller 7 years ago
parent
commit
d3924aacdf

+ 2 - 2
tests/AbstractDoctrineAnnotationFixerTestCase.php

@@ -24,7 +24,7 @@ abstract class AbstractDoctrineAnnotationFixerTestCase extends AbstractFixerTest
     /**
      * @param array $configuration
      *
-     * @dataProvider getInvalidConfigurationCases
+     * @dataProvider provideInvalidConfigurationCases
      */
     public function testConfigureWithInvalidConfiguration(array $configuration)
     {
@@ -36,7 +36,7 @@ abstract class AbstractDoctrineAnnotationFixerTestCase extends AbstractFixerTest
     /**
      * @return array
      */
-    public function getInvalidConfigurationCases()
+    public function provideInvalidConfigurationCases()
     {
         return array(
             array(array('foo' => 'bar')),

+ 2 - 2
tests/AutoReview/FixerFactoryTest.php

@@ -38,14 +38,14 @@ final class FixerFactoryTest extends TestCase
     }
 
     /**
-     * @dataProvider getFixersPriorityCases
+     * @dataProvider provideFixersPriorityCases
      */
     public function testFixersPriority(FixerInterface $first, FixerInterface $second)
     {
         $this->assertLessThan($first->getPriority(), $second->getPriority());
     }
 
-    public function getFixersPriorityCases()
+    public function provideFixersPriorityCases()
     {
         $factory = new FixerFactory();
         $factory->registerBuiltInFixers();

+ 63 - 9
tests/AutoReview/ProjectCodeTest.php

@@ -13,6 +13,7 @@
 namespace PhpCsFixer\Tests\AutoReview;
 
 use PhpCsFixer\DocBlock\DocBlock;
+use PhpCsFixer\Tokenizer\Tokens;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Finder\Finder;
 use Symfony\Component\Finder\SplFileInfo;
@@ -68,7 +69,7 @@ final class ProjectCodeTest extends TestCase
     /**
      * @param string $className
      *
-     * @dataProvider provideSrcConcreteClasses
+     * @dataProvider provideSrcConcreteClassCases
      */
     public function testThatSrcClassHaveTestClass($className)
     {
@@ -86,7 +87,7 @@ final class ProjectCodeTest extends TestCase
     /**
      * @param string $className
      *
-     * @dataProvider provideSrcClassesNotAbuseInterfaces
+     * @dataProvider provideSrcClassesNotAbuseInterfacesCases
      * @requires PHP 5.4
      */
     public function testThatSrcClassesNotAbuseInterfaces($className)
@@ -153,7 +154,7 @@ final class ProjectCodeTest extends TestCase
     /**
      * @param string $className
      *
-     * @dataProvider provideSrcClasses
+     * @dataProvider provideSrcClassCases
      */
     public function testThatSrcClassesNotExposeProperties($className)
     {
@@ -218,7 +219,7 @@ final class ProjectCodeTest extends TestCase
     /**
      * @param string $className
      *
-     * @dataProvider provideTestClasses
+     * @dataProvider provideTestClassCases
      */
     public function testThatTestClassesAreAbstractOrFinal($className)
     {
@@ -233,7 +234,7 @@ final class ProjectCodeTest extends TestCase
     /**
      * @param string $className
      *
-     * @dataProvider provideTestClasses
+     * @dataProvider provideTestClassCases
      */
     public function testThatTestClassesAreInternal($className)
     {
@@ -246,7 +247,22 @@ final class ProjectCodeTest extends TestCase
         );
     }
 
-    public function provideSrcClasses()
+    /**
+     * @dataProvider provideDataProviderMethodNameCases
+     *
+     * @param string $testClassName
+     * @param string $dataProviderMethodName
+     */
+    public function testThatDataProvidersAreCorrectlyNamed($testClassName, $dataProviderMethodName)
+    {
+        $this->assertRegExp('/^provide[A-Z]\S+Cases$/', $dataProviderMethodName, sprintf(
+            'Data provider in "%s" with name "%s" is not correctly named.',
+            $testClassName,
+            $dataProviderMethodName
+        ));
+    }
+
+    public function provideSrcClassCases()
     {
         return array_map(
             function ($item) {
@@ -256,7 +272,7 @@ final class ProjectCodeTest extends TestCase
         );
     }
 
-    public function provideSrcClassesNotAbuseInterfaces()
+    public function provideSrcClassesNotAbuseInterfacesCases()
     {
         return array_map(
             function ($item) {
@@ -288,7 +304,7 @@ final class ProjectCodeTest extends TestCase
         );
     }
 
-    public function provideSrcConcreteClasses()
+    public function provideSrcConcreteClassCases()
     {
         return array_map(
             function ($item) { return array($item); },
@@ -303,7 +319,7 @@ final class ProjectCodeTest extends TestCase
         );
     }
 
-    public function provideTestClasses()
+    public function provideTestClassCases()
     {
         return array_map(
             function ($item) {
@@ -313,6 +329,44 @@ final class ProjectCodeTest extends TestCase
         );
     }
 
+    public function provideDataProviderMethodNameCases()
+    {
+        $data = array();
+
+        $testClassNames = $this->getTestClasses();
+
+        foreach ($testClassNames as $testClassName) {
+            $dataProviderMethodNames = array();
+            $tokens = Tokens::fromCode(file_get_contents(
+                str_replace('\\', DIRECTORY_SEPARATOR, preg_replace('#^PhpCsFixer\\\Tests#', 'tests', $testClassName)).'.php'
+            ));
+
+            foreach ($tokens as $token) {
+                if ($token->isGivenKind(T_DOC_COMMENT)) {
+                    $docBlock = new DocBlock($token->getContent());
+                    $dataProviderAnnotations = $docBlock->getAnnotationsOfType('dataProvider');
+
+                    foreach ($dataProviderAnnotations as $dataProviderAnnotation) {
+                        if (1 === preg_match('/@dataProvider\s+(?P<methodName>\w+)/', $dataProviderAnnotation->getContent(), $matches)) {
+                            $dataProviderMethodNames[] = $matches['methodName'];
+                        }
+                    }
+                }
+            }
+
+            $dataProviderMethodNames = array_unique($dataProviderMethodNames);
+
+            foreach ($dataProviderMethodNames as $dataProviderMethodName) {
+                $data[] = array(
+                    $testClassName,
+                    $dataProviderMethodName,
+                );
+            }
+        }
+
+        return $data;
+    }
+
     private function getSrcClasses()
     {
         static $files;

+ 2 - 2
tests/AutoReview/TransformerTest.php

@@ -29,7 +29,7 @@ final class TransformerTest extends TestCase
     /**
      * @param TransformerInterface $transformer
      *
-     * @dataProvider provideTransformers
+     * @dataProvider provideTransformerCases
      */
     public function testTransformersAreFinal(TransformerInterface $transformer)
     {
@@ -44,7 +44,7 @@ final class TransformerTest extends TestCase
     /**
      * @return TransformerInterface[]
      */
-    public function provideTransformers()
+    public function provideTransformerCases()
     {
         static $transformersArray = null;
 

+ 2 - 2
tests/Cache/CacheTest.php

@@ -115,7 +115,7 @@ final class CacheTest extends TestCase
     }
 
     /**
-     * @dataProvider providerMissingData
+     * @dataProvider provideMissingDataCases
      *
      * @param array $data
      */
@@ -131,7 +131,7 @@ final class CacheTest extends TestCase
     /**
      * @return array
      */
-    public function providerMissingData()
+    public function provideMissingDataCases()
     {
         $data = array(
             'php' => '5.5.5',

+ 2 - 2
tests/CiIntegrationTest.php

@@ -87,7 +87,7 @@ final class CiIntegrationTest extends TestCase
      * @param string[] $expectedResult2Lines
      * @param string   $expectedResult3Files
      *
-     * @dataProvider getIntegrationCases
+     * @dataProvider provideIntegrationCases
      */
     public function testIntegration(
         $branchName,
@@ -168,7 +168,7 @@ Legend: ?-unknown, I-invalid file syntax, file ignored, S-Skipped, .-no changes,
         $this->assertSame(0, $result3['code']);
     }
 
-    public function getIntegrationCases()
+    public function provideIntegrationCases()
     {
         return array(
             array(

+ 6 - 6
tests/Console/ConfigurationResolverTest.php

@@ -125,7 +125,7 @@ final class ConfigurationResolverTest extends TestCase
     /**
      * @param string $progressType
      *
-     * @dataProvider getProgressTypeCases
+     * @dataProvider provideProgressTypeCases
      */
     public function testResolveProgressWithPositiveConfigAndExplicitProgress($progressType)
     {
@@ -147,7 +147,7 @@ final class ConfigurationResolverTest extends TestCase
     /**
      * @param string $progressType
      *
-     * @dataProvider getProgressTypeCases
+     * @dataProvider provideProgressTypeCases
      */
     public function testResolveProgressWithNegativeConfigAndExplicitProgress($progressType)
     {
@@ -166,7 +166,7 @@ final class ConfigurationResolverTest extends TestCase
         $this->assertSame($progressType, $resolver->getProgress());
     }
 
-    public function getProgressTypeCases()
+    public function provideProgressTypeCases()
     {
         return array(
             array('none'),
@@ -699,7 +699,7 @@ final class ConfigurationResolverTest extends TestCase
      * @param bool             $configValue
      * @param null|bool|string $passed
      *
-     * @dataProvider getResolveBooleanOptions
+     * @dataProvider provideResolveBooleanOptionCases
      */
     public function testResolveUsingCacheWithConfigOption($expected, $configValue, $passed)
     {
@@ -804,7 +804,7 @@ final class ConfigurationResolverTest extends TestCase
      * @param bool             $configValue
      * @param null|bool|string $passed
      *
-     * @dataProvider getResolveBooleanOptions
+     * @dataProvider provideResolveBooleanOptionCases
      */
     public function testResolveAllowRiskyWithConfigOption($expected, $configValue, $passed)
     {
@@ -1049,7 +1049,7 @@ final class ConfigurationResolverTest extends TestCase
         $this->assertFalse($resolver->getRiskyAllowed());
     }
 
-    public function getResolveBooleanOptions()
+    public function provideResolveBooleanOptionCases()
     {
         return array(
             array(true, true, 'yes'),

+ 4 - 4
tests/Console/Output/ProcessOutputTest.php

@@ -28,7 +28,7 @@ final class ProcessOutputTest extends TestCase
      * @param array  $statuses
      * @param string $expectedOutput
      *
-     * @dataProvider getProcessProgressOutputCases
+     * @dataProvider provideProcessProgressOutputCases
      */
     public function testProcessProgressOutput(array $statuses, $expectedOutput)
     {
@@ -45,7 +45,7 @@ final class ProcessOutputTest extends TestCase
         $this->assertSame($expectedOutput, $output->fetch());
     }
 
-    public function getProcessProgressOutputCases()
+    public function provideProcessProgressOutputCases()
     {
         return array(
             array(
@@ -100,7 +100,7 @@ final class ProcessOutputTest extends TestCase
      * @param array  $statuses
      * @param string $expectedOutput
      *
-     * @dataProvider getProcessProgressOutputWithNumbersCases
+     * @dataProvider provideProcessProgressOutputWithNumbersCases
      */
     public function testProcessProgressOutputWithNumbers(array $statuses, $expectedOutput)
     {
@@ -122,7 +122,7 @@ final class ProcessOutputTest extends TestCase
         $this->assertSame($expectedOutput, $output->fetch());
     }
 
-    public function getProcessProgressOutputWithNumbersCases()
+    public function provideProcessProgressOutputWithNumbersCases()
     {
         return array(
             array(

+ 4 - 4
tests/DocBlock/AnnotationTest.php

@@ -87,7 +87,7 @@ final class AnnotationTest extends TestCase
      * @param int    $index
      * @param string $content
      *
-     * @dataProvider provideContent
+     * @dataProvider provideGetContentCases
      */
     public function testGetContent($index, $content)
     {
@@ -98,7 +98,7 @@ final class AnnotationTest extends TestCase
         $this->assertSame($content, (string) $annotation);
     }
 
-    public function provideContent()
+    public function provideGetContentCases()
     {
         $cases = array();
 
@@ -163,7 +163,7 @@ final class AnnotationTest extends TestCase
      * @param int    $index
      * @param string $tag
      *
-     * @dataProvider provideTags
+     * @dataProvider provideGetTagCases
      */
     public function testGetTag($index, $tag)
     {
@@ -173,7 +173,7 @@ final class AnnotationTest extends TestCase
         $this->assertSame($tag, $annotation->getTag()->getName());
     }
 
-    public function provideTags()
+    public function provideGetTagCases()
     {
         $cases = array();
 

+ 7 - 7
tests/DocBlock/LineTest.php

@@ -119,7 +119,7 @@ final class LineTest extends TestCase
      * @param int    $pos
      * @param string $content
      *
-     * @dataProvider provideLines
+     * @dataProvider provideLinesCases
      */
     public function testPosAndContent($pos, $content)
     {
@@ -132,7 +132,7 @@ final class LineTest extends TestCase
     /**
      * @param int $pos
      *
-     * @dataProvider provideLines
+     * @dataProvider provideLinesCases
      */
     public function testStartOrEndPos($pos)
     {
@@ -156,7 +156,7 @@ final class LineTest extends TestCase
         }
     }
 
-    public function provideLines()
+    public function provideLinesCases()
     {
         $cases = array();
 
@@ -171,7 +171,7 @@ final class LineTest extends TestCase
      * @param int  $pos
      * @param bool $useful
      *
-     * @dataProvider provideLinesWithUseful
+     * @dataProvider provideLinesWithUsefulCases
      */
     public function testUseful($pos, $useful)
     {
@@ -181,7 +181,7 @@ final class LineTest extends TestCase
         $this->assertSame($useful, $line->containsUsefulContent());
     }
 
-    public function provideLinesWithUseful()
+    public function provideLinesWithUsefulCases()
     {
         $cases = array();
 
@@ -196,7 +196,7 @@ final class LineTest extends TestCase
      * @param int  $pos
      * @param bool $tag
      *
-     * @dataProvider provideLinesWithTag
+     * @dataProvider provideLinesWithTagCases
      */
     public function testTag($pos, $tag)
     {
@@ -206,7 +206,7 @@ final class LineTest extends TestCase
         $this->assertSame($tag, $line->containsATag());
     }
 
-    public function provideLinesWithTag()
+    public function provideLinesWithTagCases()
     {
         $cases = array();
 

Some files were not shown because too many files changed in this diff