@@ -534,6 +534,33 @@ public function testDevPathInsideProdPath(): void
534534 $ this ->assertResultsWithoutUsages ($ this ->createAnalysisResult (2 , []), $ result );
535535 }
536536
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+
537564 public function testOtherSymbols (): void
538565 {
539566 require_once __DIR__ . '/data/not-autoloaded/other-symbols/symbol-declaration.php ' ;
@@ -703,13 +730,13 @@ private function getClassLoaderMock(): ClassLoader
703730
704731 private function assertResultsWithoutUsages (AnalysisResult $ expectedResult , AnalysisResult $ result ): void
705732 {
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 ' );
713740 }
714741
715742}
0 commit comments