* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\File; use PHP_CodeSniffer\Tests\Core\AbstractMethodUnitTest; class FindImplementedInterfaceNamesTest extends AbstractMethodUnitTest { /** * Test retrieving the name(s) of the interfaces being implemented by a class. * * @param string $identifier Comment which precedes the test case. * @param bool $expected Expected function output. * * @dataProvider dataImplementedInterface * * @return void */ public function testFindImplementedInterfaceNames($identifier, $expected) { $OOToken = $this->getTargetToken($identifier, [T_CLASS, T_ANON_CLASS, T_INTERFACE, T_ENUM]); $result = self::$phpcsFile->findImplementedInterfaceNames($OOToken); $this->assertSame($expected, $result); }//end testFindImplementedInterfaceNames() /** * Data provider for the FindImplementedInterfaceNames test. * * @see testFindImplementedInterfaceNames() * * @return array */ public function dataImplementedInterface() { return [ [ '/* testImplementedClass */', ['testFIINInterface'], ], [ '/* testMultiImplementedClass */', [ 'testFIINInterface', 'testFIINInterface2', ], ], [ '/* testNamespacedClass */', ['\PHP_CodeSniffer\Tests\Core\File\testFIINInterface'], ], [ '/* testNonImplementedClass */', false, ], [ '/* testInterface */', false, ], [ '/* testClassThatExtendsAndImplements */', [ 'InterfaceA', '\NameSpaced\Cat\InterfaceB', ], ], [ '/* testClassThatImplementsAndExtends */', [ '\InterfaceA', 'InterfaceB', ], ], [ '/* testBackedEnumWithoutImplements */', false, ], [ '/* testEnumImplements */', ['Colorful'], ], [ '/* testBackedEnumImplements */', [ 'Colorful', '\Deck', ], ], ]; }//end dataImplementedInterface() }//end class