classUnitCollector
final class UnitCollector
Gathers the units selected by each declared scope and rejects inconsistent selections.
A unit shared by two scopes must have the same text in both, and no scope may select an ancestor of a unit another scope of the same document selected.
Properties§
public array<string, SourceUnit> $units = []public array<string, list<string>> $scopes = []Methods§
public function open(Source $source): voidStarts the scope of a source with no units.
Parameters
$source | Source | The source whose scope is selected next |
Test cases 11
UnitCollectorTest::testCollectAcceptsUnitsThatDoNotOverlapcallsUnitCollectorTest::testCollectAddsTheSelectedUnitsByKeycallsUnitCollectorTest::testCollectKeepsTheUnitsAddedBeforeARejectedUnitcallsUnitCollectorTest::testCollectListsARepeatedUnitOncecallsUnitCollectorTest::testCollectRejectsABlankUnitcallsUnitCollectorTest::testCollectRejectsAncestorsAndDescendantsAcrossScopescallsUnitCollectorTest::testCollectRejectsAnEmptyScopecallsUnitCollectorTest::testCollectRejectsConflictingTextOfTheSameUnitcallsUnitCollectorTest::testCollectSharesAUnitBetweenScopesOfTheSameDocumentcallsUnitCollectorTest::testOpenClearsTheUnitKeysOfAReopenedScopecallsUnitCollectorTest::testOpenStartsAScopeWithNoUnitscalls
Called from 1
Adds the units a scope selected; units added before a rejected unit are kept.
Throws
RuntimeException When the scope is empty, a unit is blank, its text conflicts or scopes overlapTest cases 10
UnitCollectorTest::testCollectAcceptsUnitsThatDoNotOverlapcallsUnitCollectorTest::testCollectAddsTheSelectedUnitsByKeycallsUnitCollectorTest::testCollectKeepsTheUnitsAddedBeforeARejectedUnitcallsUnitCollectorTest::testCollectListsARepeatedUnitOncecallsUnitCollectorTest::testCollectRejectsABlankUnitcallsUnitCollectorTest::testCollectRejectsAncestorsAndDescendantsAcrossScopescallsUnitCollectorTest::testCollectRejectsAnEmptyScopecallsUnitCollectorTest::testCollectRejectsConflictingTextOfTheSameUnitcallsUnitCollectorTest::testCollectSharesAUnitBetweenScopesOfTheSameDocumentcallsUnitCollectorTest::testOpenClearsTheUnitKeysOfAReopenedScopecalls
Called from 1
Test cases 19§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 11
UnitCollectorTest::testCollectAcceptsUnitsThatDoNotOverlapcallsUnitCollectorTest::testCollectAddsTheSelectedUnitsByKeycallsUnitCollectorTest::testCollectKeepsTheUnitsAddedBeforeARejectedUnitcallsUnitCollectorTest::testCollectListsARepeatedUnitOncecallsUnitCollectorTest::testCollectRejectsABlankUnitcallsUnitCollectorTest::testCollectRejectsAncestorsAndDescendantsAcrossScopescallsUnitCollectorTest::testCollectRejectsAnEmptyScopecallsUnitCollectorTest::testCollectRejectsConflictingTextOfTheSameUnitcallsUnitCollectorTest::testCollectSharesAUnitBetweenScopesOfTheSameDocumentcallsUnitCollectorTest::testOpenClearsTheUnitKeysOfAReopenedScopecallsUnitCollectorTest::testOpenStartsAScopeWithNoUnitscalls
Other tests reaching this symbol 8
MarkdownDocumentTestcallsApplicationTestcallsCommandHandlerTestcallsExecutorTestcallsAnalyzerTestcallsCoverageTestcallsSnapshotTestcallsVerifierTestcalls