classCaseSelection
final class CaseSelection
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Chooses a branch from explicit values or compatible inverse relations.
Methods§
public function select<TValue>(
RelationChoice $choice,
array<TValue> $values,
?Relation $arrival,
Generator $faker,
): ChoiceCaseParameters
$choice | RelationChoice | |
$values | array<TValue> | |
$arrival | ?Relation | |
$faker | Generator |
Returns
Throws
Test cases 6
CaseSelectionTest::testSelectDoesNotConstrainAnUnrelatedIncomingRelationcallsCaseSelectionTest::testSelectInfersTheCaseFromAnInverseRelationcallsCaseSelectionTest::testSelectRejectsAnInverseFallbackWithoutAValuecallsCaseSelectionTest::testSelectRejectsUnknownValuescallsCaseSelectionTest::testSelectUsesFallbackOnlyForSuppliedValuescallsCaseSelectionTest::testSelectUsesStrictValuescalls
Called from 1
Calls 10
- function-call
array_key_existsline 26 - method-call CaseSelection::checkArrival() line 29
- new ChoiceValueException line 35
- function-call
in_arrayline 38 - method-call RelationChoice::relations() line 38
- function-call
array_valuesline 39 - function-call
array_filterline 39 - method-call CaseSelection::matchingArrival() line 39
- method-call
Generator::numberBetween()line 44 - function-call
countline 44
public function checkArrival(
RelationChoice $choice,
ChoiceCase $case,
?Relation $arrival,
): ChoiceCaseRejects an explicit case incompatible with the relation already walked.
Parameters
$choice | RelationChoice | |
$case | ChoiceCase | |
$arrival | ?Relation |
Returns
Throws
Test cases 1
Called from 2
Calls 4
- function-call
in_arrayline 53 - method-call RelationChoice::relations() line 53
- method-call CaseSelection::matchingArrival() line 53
- new ChoiceValueException line 54
public function matchingArrival(ChoiceCase $case, Relation $arrival): ?RelationFinds the selected equivalent of an inverse candidate relation.
Parameters
$case | ChoiceCase | |
$arrival | Relation |
Returns
Test cases 1
Called from 3
- method-call SqlFixture\Fixture\Choice\CaseSelection::select() packages/sql-fixture/src/Fixture/Choice/CaseSelection.php:39
- method-call SqlFixture\Fixture\Choice\CaseSelection::checkArrival() packages/sql-fixture/src/Fixture/Choice/CaseSelection.php:53
- method-call SqlFixture\Fixture\Choice\RowChoices::resolve() packages/sql-fixture/src/Fixture/Choice/RowChoices.php:35
Calls 2
- method-call Relation::parent() line 65
- method-call Relation::child() line 65
Test cases 25§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 8
CaseSelectionTest::testCheckArrivalRejectsAConflictingExplicitCasecallsCaseSelectionTest::testMatchingArrivalUsesBothEndpointsAndTheOperatorcallsCaseSelectionTest::testSelectDoesNotConstrainAnUnrelatedIncomingRelationcallsCaseSelectionTest::testSelectInfersTheCaseFromAnInverseRelationcallsCaseSelectionTest::testSelectRejectsAnInverseFallbackWithoutAValuecallsCaseSelectionTest::testSelectRejectsUnknownValuescallsCaseSelectionTest::testSelectUsesFallbackOnlyForSuppliedValuescallsCaseSelectionTest::testSelectUsesStrictValuescalls
Other tests reaching this symbol 17
ChoiceBindingsTestcallsChoiceValueExceptionTestcallsInverseRelationsTestcallsResolvedRowTestcallsRowChoicesTestcallsRecursiveRelationExceptionTestcallsRelationValueExceptionTestcallsRowBindingsTestcallsPlanGeneratorTestcallsChoiceCaseTestcallsChoiceDefinitionExceptionTestcallsChoiceLiteralTestcallsChoiceSyntaxTestcallsChoiceValidationTestcallsPlanContentsTestcallsRelationChoiceTestcallsFixtureProviderTestcalls