55namespace Behastan \Analyzer ;
66
77use Behastan \DefinitionMasksResolver ;
8+ use Behastan \Reporting \MaskCollectionStatsPrinter ;
89use Behastan \UsedInstructionResolver ;
910use Behastan \ValueObject \Mask \AbstractMask ;
1011use Behastan \ValueObject \Mask \ExactMask ;
1112use Behastan \ValueObject \Mask \NamedMask ;
1213use Behastan \ValueObject \Mask \RegexMask ;
1314use Behastan \ValueObject \Mask \SkippedMask ;
14- use Behastan \ValueObject \MaskCollection ;
1515use Nette \Utils \Strings ;
1616use Symfony \Component \Console \Style \SymfonyStyle ;
1717use Symfony \Component \Finder \SplFileInfo ;
2121 public function __construct (
2222 private SymfonyStyle $ symfonyStyle ,
2323 private DefinitionMasksResolver $ definitionMasksResolver ,
24- private UsedInstructionResolver $ usedInstructionResolver
24+ private UsedInstructionResolver $ usedInstructionResolver ,
25+ private MaskCollectionStatsPrinter $ maskCollectionStatsPrinter ,
2526 ) {
2627 }
2728
@@ -34,7 +35,7 @@ public function __construct(
3435 public function analyse (array $ contextFiles , array $ featureFiles ): array
3536 {
3637 $ maskCollection = $ this ->definitionMasksResolver ->resolve ($ contextFiles );
37- $ this ->printStats ($ maskCollection );
38+ $ this ->maskCollectionStatsPrinter -> printStats ($ maskCollection );
3839
3940 $ featureInstructions = $ this ->usedInstructionResolver ->resolveInstructionsFromFeatureFiles ($ featureFiles );
4041
@@ -56,28 +57,6 @@ public function analyse(array $contextFiles, array $featureFiles): array
5657 return $ unusedMasks ;
5758 }
5859
59- private function printStats (MaskCollection $ maskCollection ): void
60- {
61- $ this ->symfonyStyle ->writeln (sprintf ('Found %d masks: ' , $ maskCollection ->count ()));
62- $ this ->symfonyStyle ->newLine ();
63-
64- $ this ->symfonyStyle ->writeln (sprintf (' * %d exact ' , $ maskCollection ->countByType (ExactMask::class)));
65- $ this ->symfonyStyle ->writeln (sprintf (' * %d /regex/ ' , $ maskCollection ->countByType (RegexMask::class)));
66- $ this ->symfonyStyle ->writeln (sprintf (' * %d :named ' , $ maskCollection ->countByType (NamedMask::class)));
67- $ this ->symfonyStyle ->writeln (sprintf (' * %d skipped ' , $ maskCollection ->countByType (SkippedMask::class)));
68-
69- $ skippedMasks = $ maskCollection ->byType (SkippedMask::class);
70- if ($ skippedMasks !== []) {
71- $ this ->symfonyStyle ->newLine ();
72-
73- foreach ($ skippedMasks as $ skippedMask ) {
74- $ this ->printMask ($ skippedMask );
75- }
76-
77- $ this ->symfonyStyle ->newLine ();
78- }
79- }
80-
8160 /**
8261 * @param string[] $featureInstructions
8362 */
@@ -93,16 +72,6 @@ private function isRegexDefinitionUsed(string $regexBehatDefinition, array $feat
9372 return false ;
9473 }
9574
96- private function printMask (AbstractMask $ unusedMask ): void
97- {
98- $ this ->symfonyStyle ->writeln ($ unusedMask ->mask );
99-
100- // make path relative
101- $ relativeFilePath = str_replace (getcwd () . '/ ' , '' , $ unusedMask ->filePath );
102- $ this ->symfonyStyle ->writeln ($ relativeFilePath );
103- $ this ->symfonyStyle ->newLine ();
104- }
105-
10675 /**
10776 * @param string[] $featureInstructions
10877 */
0 commit comments