16 $this->expectException(InvalidFileException::class);
20 public function testEmptyArrayForFileWithoutNamespaceOrClass()
22 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
25 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
32 \$object =
new some_class();
38 $result = $scanner->getClassNames();
42 public function testGetClassName()
44 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
47 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
58 $result = $scanner->getClassNames();
61 self::assertContains(
'ThisIsATest',
$result);
64 public function testGetClassNameAndSingleNamespace()
66 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
69 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
82 $result = $scanner->getClassNames();
85 self::assertContains(
'NS\ThisIsMyTest',
$result);
88 public function testGetClassNameAndMultiNamespace()
90 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
93 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
97 namespace This\Is\
My\Ns;
101 public function __construct()
103 \This\Is\Another\Ns::class;
106 public function test()
115 $result = $scanner->getClassNames();
118 self::assertContains(
'This\Is\My\Ns\ThisIsMyTest',
$result);
121 public function testGetMultiClassNameAndMultiNamespace()
123 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
126 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
130 namespace This\Is\
My\Ns;
134 public function __construct()
136 \$this->get(\This\Is\Another\Ns::class)->method();
140 public function test()
146 class ThisIsForBreaking {
154 $result = $scanner->getClassNames();
157 self::assertContains(
'This\Is\My\Ns\ThisIsMyTest',
$result);
158 self::assertContains(
'This\Is\My\Ns\ThisIsForBreaking',
$result);
161 public function testBracketedNamespacesAndClasses()
163 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
166 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
170 namespace This\Is\
My\Ns {
175 public function __construct()
177 \This\Is\Another\Ns::class;
183 class ThisIsForBreaking
188 namespace This\Is\Not\My\Ns {
190 class ThisIsNotMyTest
199 $result = $scanner->getClassNames();
202 self::assertContains(
'This\Is\My\Ns\ThisIsMyTest',
$result);
203 self::assertContains(
'This\Is\My\Ns\ThisIsForBreaking',
$result);
204 self::assertContains(
'This\Is\Not\My\Ns\ThisIsNotMyTest',
$result);
209 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
212 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(<<<
'PHP' 215 namespace This\Is\
My\Ns;
221 protected function firstMethod()
224 $testString =
"foo {$test}";
226 $testString2 =
"bar {$test}";
229 protected function secondMethod()
231 $this->doMethod(stdClass::class)->runAction();
239 $result = $scanner->getClassNames();
244 public function testInvalidPHPCodeThrowsExceptionWhenCannotDetermineBraceOrSemiColon()
246 $this->expectException(InvalidFileException::class);
247 $scanner = $this->getMockBuilder(FileClassScanner::class)->disableOriginalConstructor()->setMethods([
250 $scanner->expects(self::once())->method(
'getFileContents')->willReturn(
254 namespace This\Is\
My\Ns
264 $scanner->getClassNames();
testInvalidFileThrowsException()
testMultipleClassKeywordsInMiddleOfFileWithStringVariableParsing()