@@ -534,6 +534,33 @@ public function testDevPathInsideProdPath(): void
534
534
$ this ->assertResultsWithoutUsages ($ this ->createAnalysisResult (2 , []), $ result );
535
535
}
536
536
537
+ public function testProdPathInsideDevPath (): void
538
+ {
539
+ $ vendorDir = realpath (__DIR__ . '/data/autoloaded/vendor ' );
540
+ $ devPath = realpath (__DIR__ . '/data/not-autoloaded/prod-in-subdirectory ' );
541
+ $ prodPath = realpath (__DIR__ . '/data/not-autoloaded/prod-in-subdirectory/prod ' );
542
+ self ::assertNotFalse ($ vendorDir );
543
+ self ::assertNotFalse ($ devPath );
544
+ self ::assertNotFalse ($ prodPath );
545
+
546
+ $ config = new Configuration ();
547
+ $ config ->addPathToScan ($ prodPath , false );
548
+ $ config ->addPathToScan ($ devPath , true );
549
+
550
+ $ detector = new Analyser (
551
+ $ this ->getStopwatchMock (),
552
+ [$ vendorDir => $ this ->getClassLoaderMock ()],
553
+ $ config ,
554
+ [
555
+ 'regular/package ' => false ,
556
+ 'dev/package ' => true ,
557
+ ]
558
+ );
559
+ $ result = $ detector ->run ();
560
+
561
+ $ this ->assertResultsWithoutUsages ($ this ->createAnalysisResult (2 , []), $ result );
562
+ }
563
+
537
564
public function testOtherSymbols (): void
538
565
{
539
566
require_once __DIR__ . '/data/not-autoloaded/other-symbols/symbol-declaration.php ' ;
@@ -703,13 +730,13 @@ private function getClassLoaderMock(): ClassLoader
703
730
704
731
private function assertResultsWithoutUsages (AnalysisResult $ expectedResult , AnalysisResult $ result ): void
705
732
{
706
- self ::assertSame ($ expectedResult ->getScannedFilesCount (), $ result ->getScannedFilesCount ());
707
- self ::assertEquals ($ expectedResult ->getUnusedIgnores (), $ result ->getUnusedIgnores ());
708
- self ::assertEquals ($ expectedResult ->getUnknownClassErrors (), $ result ->getUnknownClassErrors ());
709
- self ::assertEquals ($ expectedResult ->getShadowDependencyErrors (), $ result ->getShadowDependencyErrors ());
710
- self ::assertEquals ($ expectedResult ->getDevDependencyInProductionErrors (), $ result ->getDevDependencyInProductionErrors ());
711
- self ::assertEquals ($ expectedResult ->getProdDependencyOnlyInDevErrors (), $ result ->getProdDependencyOnlyInDevErrors ());
712
- self ::assertEquals ($ expectedResult ->getUnusedDependencyErrors (), $ result ->getUnusedDependencyErrors ());
733
+ self ::assertSame ($ expectedResult ->getScannedFilesCount (), $ result ->getScannedFilesCount (), ' Scanned files count mismatch ' );
734
+ self ::assertEquals ($ expectedResult ->getUnusedIgnores (), $ result ->getUnusedIgnores (), ' Unused ignores mismatch ' );
735
+ self ::assertEquals ($ expectedResult ->getUnknownClassErrors (), $ result ->getUnknownClassErrors (), ' Unknown class mismatch ' );
736
+ self ::assertEquals ($ expectedResult ->getShadowDependencyErrors (), $ result ->getShadowDependencyErrors (), ' Shadow dependency mismatch ' );
737
+ self ::assertEquals ($ expectedResult ->getDevDependencyInProductionErrors (), $ result ->getDevDependencyInProductionErrors (), ' Dev dependency in production mismatch ' );
738
+ self ::assertEquals ($ expectedResult ->getProdDependencyOnlyInDevErrors (), $ result ->getProdDependencyOnlyInDevErrors (), ' Prod dependency only in dev mismatch ' );
739
+ self ::assertEquals ($ expectedResult ->getUnusedDependencyErrors (), $ result ->getUnusedDependencyErrors (), ' Unused dependency mismatch ' );
713
740
}
714
741
715
742
}
0 commit comments