classFixturePlan
class FixturePlan
implements Stringable
@visibility public.The parsed form of a fixture plan: which tables take part, and how their columns line up.
This type is the plan. The DBML relation string is one way to write it down and from() reads it; toString() writes it back. Building it up method by method, or declaring one as a class, produce the same value by other routes:
FixturePlan::from('order.id < order_detail.order_id');
(new FixturePlan())->withOneToMany('order.id', 'order_detail.order_id');
final class OrderWithDetails extends FixturePlan { public function __construct() { parent::__construct( Relation::oneToMany('order.id', 'order_detail.order_id'), Relation::manyToOne('order.customer_id', 'customer.id'), ); } }
A subclass names a plan without adding a kind of plan, so the builders below return a plain FixturePlan rather than the subclass: once a declared plan is altered it is no longer the plan that class stands for.
$plan = \SqlFixture\Plan\FixturePlan::from('users.id < posts.user_id');
$plan->tables // => ['users', 'posts']
$plan->toString() // => 'users.id < posts.user_id'Properties§
public list<Relation> $relationspublic list<RelationChoice> $choicespublic list<string> $tablespublic list<string> $generationOrderMethods§
public function __construct(Relation|RelationChoice|string ...$parts)Parameters
$parts | Relation|RelationChoice|string | Relations, and the names of tables that stand alone |
Throws
EmptyPlanException If a table declaration is emptyCalls 8
- function-call
array_valuesline 82 - new PlanContents line 83
- method-call PlanValidation::rejectColumnsBoundTwice() line 87
- new PlanValidation line 87
- method-call ChoiceValidation::validate() line 88
- new ChoiceValidation line 88
- method-call PlanValidation::rejectUnboundedSelfReferences() line 89
- method-call PlanValidation::sortByDependency() line 90
public static function from(string|self $plan): selfRead a plan written in the DBML relation syntax.
Parameters
$plan | string|self |
Returns
selfThrows
Test cases 88
FixtureGenerationBench::setUpcallsConnectedTablesTest::testConnectedToFollowsBothDirectionsAndSkipsOtherComponentscallsOverrideSpecsTest::testSpecsPreservesNamedAndPositionalRequestscallsRelationProjectionTest::testReferencedColumnsDeduplicatesParentKeyscallsRowMaterializerTest::testMaterializeBoundsAnOptionalSelfRelationAfterAnotherTablecallsRowMaterializerTest::testMaterializeLinksEveryChildToTheGeneratedParentcallsRowMaterializerTest::testMaterializeParentDoesNotWalkBackAlongTheArrivalRelationcallsRowMaterializerTest::testMaterializeRowPreservesExplicitKeyscallsRowMaterializerTest::testToChildrenCopiesTheExistingParentKeycallsRowMaterializerTest::testToParentProjectsGeneratedKeyscallsPlanGeneratorTest::testACompositeRelationCarriesEveryColumncallsPlanGeneratorTest::testACountOfZeroGeneratesNoRowscallsPlanGeneratorTest::testAListGivesOneRowPerEntrycallsPlanGeneratorTest::testAnOptionalChildMayGenerateNoneAtAllcallsPlanGeneratorTest::testAnOptionalOneToOneAskedForNoneIsNullcallsPlanGeneratorTest::testAnOptionalParentIsGeneratedWhenTheCallerAsksForItcallsPlanGeneratorTest::testAnOptionalParentNobodyAskedForIsLeftOutcallsPlanGeneratorTest::testAnUnboundedChildCountCanExceedItsMinimumcallsPlanGeneratorTest::testAnUnknownTableIsReportedcallsPlanGeneratorTest::testAnUnmentionedChildIsStillGeneratedcallsPlanGeneratorTest::testAOneToOneChildIsASingleRowcallsPlanGeneratorTest::testAOneToOneChildIsGeneratedExactlyOncecallsPlanGeneratorTest::testAOneToOneChildIsNeverGeneratedMoreThanOncecallsPlanGeneratorTest::testAParentIsGeneratedAndLinkedTocallsPlanGeneratorTest::testAPlanNamingAColumnTheTableLacksIsRejectedBeforeGeneratingcallsPlanGeneratorTest::testARequiredChildNeverGeneratesNonecallsPlanGeneratorTest::testARequiredParentIsGeneratedWhetherOrNotItWasAskedForcallsPlanGeneratorTest::testARowCarriesBothItsInheritedKeyAndItsOwnParentKeycallsPlanGeneratorTest::testATableReachableOnlyBackwardsAlongARelationIsStillPartOfTheWalkcallsPlanGeneratorTest::testChildRowsCarryTheParentKeycallsPlanGeneratorTest::testEntriesComeBackInTheOrderThePlanNamesThemcallsPlanGeneratorTest::testEveryChildOfAListGetsItsOwnParentcallsPlanGeneratorTest::testEveryOtherRelationOfAParentIsStillFollowedcallsPlanGeneratorTest::testFixingTheLinkingColumnLeavesTheParentAlonecallsPlanGeneratorTest::testGenerateAllRelationsInTheSelectedBranchcallsPlanGeneratorTest::testGenerateChildTablesSelectedPerPaymentcallsPlanGeneratorTest::testGenerateCompositeChoiceKeyscallsPlanGeneratorTest::testGenerateConflictingChildKeysAreRejectedcallsPlanGeneratorTest::testGenerateConflictingInverseDiscriminatorIsRejectedcallsPlanGeneratorTest::testGenerateConflictingParentKeysAreRejectedcallsPlanGeneratorTest::testGenerateExplicitReferencesWithoutInventingParentscallsPlanGeneratorTest::testGenerateFallbackAndNullBranchescallsPlanGeneratorTest::testGenerateInverseEquivalentCasesOncePerChildcallsPlanGeneratorTest::testGenerateInversePolymorphicChildrencallsPlanGeneratorTest::testGenerateInverseSubtypeParentcallsPlanGeneratorTest::testGenerateMixedChoiceRowscallsPlanGeneratorTest::testGenerateOptionalParentsWithNullReferencescallsPlanGeneratorTest::testGeneratePartialCompositeOverridesAreCarriedToTheParentcallsPlanGeneratorTest::testGeneratePolymorphicJunctionRowscallsPlanGeneratorTest::testGenerateRepeatedRolesFailWithoutUnboundedRecursioncallsPlanGeneratorTest::testGenerateSeededCaseSelectionIsReproduciblecallsPlanGeneratorTest::testGenerateTheTableThePlanIsAboutGetsOneRowcallsPlanGeneratorTest::testGenerateUnknownDiscriminatorColumnsAreRejectedcallsPlanGeneratorTest::testGenerateUnknownDiscriminatorReportsItsColumncallsPlanGeneratorTest::testKeysAreStoodInForEveryColumnARelationReadscallsPlanGeneratorTest::testOneSetOfValuesAppliesToEveryGeneratedRowcallsPlanGeneratorTest::testOverridesMayBeGivenAsTableOverridescallsPlanGeneratorTest::testTablesThatStandAloneAreGeneratedToocallsPlanGeneratorTest::testTheSubjectHonoursACountItWasGivencallsPlanGeneratorTest::testTheSubjectIsOneRowEvenWhenSomethingReferencesItcallsPlanSchemaValidatorTest::aColumnTheTableDoesNotHaveIsRejectedcallsPlanSchemaValidatorTest::testAGeneratedColumnCannotBeLinkedcallsPlanSchemaValidatorTest::testAGeneratedColumnCannotBeWrittenIntoEithercallsPlanSchemaValidatorTest::testATableNamedWithoutAnyRelationIsCheckedToocallsPlanSchemaValidatorTest::testATableTheResolverDoesNotKnowIsRejectedcallsPlanSchemaValidatorTest::testValidateAPlanMatchingTheSchemaPassescallsChoiceSyntaxTest::testParseKeepsOperatorTextInsideValuescallsFixturePlanTest::testADeclaredPlanEqualsTheParsedStringcallsFixturePlanTest::testAnOptionalSelfReferenceIsAllowedcallsFixturePlanTest::testCastingToStringWritesThePlanBackcallsFixturePlanTest::testDependenciesOfReturnsAListEvenWhenTheMatchIsNotFirstcallsFixturePlanTest::testDependenciesOfSelectsRelationsWhereTheTableIsTheChildcallsFixturePlanTest::testDependentsOfReturnsAListEvenWhenTheMatchIsNotFirstcallsFixturePlanTest::testDependentsOfSelectsRelationsWhereTheTableIsTheParentcallsFixturePlanTest::testFromAcceptsAPlanAndCopiesItcallsFixturePlanTest::testFromReadsTheRelationStringcallsFixturePlanTest::testGenerationOrderCoversTablesThatStandAlonecallsFixturePlanTest::testGenerationOrderHandlesSeveralIndependentComponentscallsFixturePlanTest::testGenerationOrderPutsEveryParentBeforeItsChildrencallsFixturePlanTest::testRootsAreTheTablesNothingHasToPrecedecallsFixturePlanTest::testRootsReturnsAListEvenWhenTheFirstTableIsNotOnecallsFixturePlanTest::testSubjectTableTheSubjectIsTheFirstTableNamedcallsFixturePlanTest::testTheStringAndTheObjectDescribeTheSamePlancallsFixturePlanTest::testTheSubjectIsNotNecessarilyGeneratedFirstcallsFixturePlanTest::testToStringWritesThePlanBackcallsFixturePlanTest::testTwoForeignKeysBetweenTheSameTablesAreAllowedcallsFixturePlanTest::testWithChoiceKeepsEveryPotentialTableInOrdercallsPlanTablesTest::testStandaloneTablesExcludesRelationEndpointscalls
Called from 1
Calls 3
- new
selfline 108 - method-call PlanParser::parse() line 111
- new PlanParser line 111
public static function table(string $table): selfStart a plan from the table its fixtures are rooted at.
Parameters
$table | string |
Returns
selfTest cases 19
GenerationRunTest::testAClaimedTableThatWasNeverReachedIsNotAListcallsGenerationRunTest::testATableThatGeneratedNothingReadsBackAsNullcallsGenerationRunTest::testClaimingDoesNotUndoWhatTheWalkAlreadyLearntcallsGenerationRunTest::testReachedReachingATableAsAListStickscallsGenerationRunTest::testToSetATableReachedOnlyAsASingleRowReadsBackAsOnecallsFixturePlanTest::testEveryBuilderMethodReturnsANewInstancecallsFixturePlanTest::testTablesAreNotRepeatedcallsFixturePlanTest::testTableStartsAPlanWithNoRelationscallsFixturePlanTest::testTheStringAndTheObjectDescribeTheSamePlancallsFixturePlanTest::testWithChoiceKeepsEveryPotentialTableInOrdercallsFixturePlanTest::testWithManyToOneAddsARelationcallsFixturePlanTest::testWithManyToOneCanMarkTheParentOptionalcallsFixturePlanTest::testWithOneToManyAddsARelationcallsFixturePlanTest::testWithOneToOneAddsARelationcallsFixturePlanTest::testWithRelationAcceptsAColumnRefForCompositeKeyscallsFixturePlanTest::testWithRelationAddsARelationDirectlycallsFixturePlanTest::testWithTableNamesATableThatHasNoRelationYetcallsPlanPrinterTest::testPrintsATableOnlyPlanAsItsTableNamecallsTableNameTest::testAssertTableNameAcceptsUnderscoresAndDollarSignscalls
Calls 1
- new
selfline 119
public function withRelation(Relation $relation): selfReturns with relation.
Parameters
$relation | Relation |
Returns
selfCalled from 3
- method-call SqlFixture\Plan\FixturePlan::withOneToMany() packages/sql-fixture/src/Plan/FixturePlan.php:172
- method-call SqlFixture\Plan\FixturePlan::withManyToOne() packages/sql-fixture/src/Plan/FixturePlan.php:183
- method-call SqlFixture\Plan\FixturePlan::withOneToOne() packages/sql-fixture/src/Plan/FixturePlan.php:194
Calls 1
- new
selfline 127
public function withChoice(RelationChoice $choice): selfAdds mutually exclusive relations selected separately for each row.
Parameters
$choice | RelationChoice |
Returns
selfTest cases 1
Calls 1
- new
selfline 135
public function parts(): list<Relation|RelationChoice|string>Preserves declaration order for printing and branch selection.
Returns
list<Relation|RelationChoice|string>Test cases 1
Called from 1
public function select(RelationChoice $choice, ChoiceCase $case): selfReplaces one choice with the selected relations for a generation scope.
Parameters
$choice | RelationChoice | |
$case | ChoiceCase |
Returns
selfTest cases 2
Calls 1
- new
selfline 161
public function withOneToMany(
string|ColumnRef $parent,
string|ColumnRef $child,
bool $childOptional = false,
): selfAdd parent.column < child.column.
Returns
selfCalls 2
- method-call FixturePlan::withRelation() line 172
- static-call Relation::oneToMany() line 172
public function withManyToOne(
string|ColumnRef $child,
string|ColumnRef $parent,
bool $parentOptional = false,
): selfAdd child.column > parent.column.
Returns
selfCalls 2
- method-call FixturePlan::withRelation() line 183
- static-call Relation::manyToOne() line 183
public function withOneToOne(
string|ColumnRef $parent,
string|ColumnRef $child,
bool $childOptional = false,
): selfAdd parent.column - child.column.
Returns
selfCalls 2
- method-call FixturePlan::withRelation() line 194
- static-call Relation::oneToOne() line 194
public function withTable(string $table): selfName a table that takes part without being related to anything.
Parameters
$table | string |
Returns
selfTest cases 1
Calls 1
- new
selfline 202
public function subjectTable(): ?stringThe table the fixtures are about, which is the first one named.
This is where the plan reads from, not where generation starts: written order_detail.order_id > order.id the subject is order_detail, but order has to exist first. Use generationOrder for that.
Returns
?stringTest cases 1
public function roots(): list<string>Tables nothing else has to be generated before.
Returns
list<string>Calls 1
- method-call FixturePlan::dependenciesOf() line 227
public function dependenciesOf(string $table): list<Relation>Relations that must be satisfied before this table can be generated, that is, those in which it is the child.
Parameters
$table | string |
Returns
list<Relation>Called from 1
Calls 3
- function-call
array_valuesline 243 - function-call
array_filterline 243 - method-call Relation::child() line 245
public function dependentsOf(string $table): list<Relation>Relations hanging off this table, that is, those in which it is the parent.
Parameters
$table | string |
Returns
list<Relation>Called from 1
Calls 3
- function-call
array_valuesline 256 - function-call
array_filterline 256 - method-call Relation::parent() line 258
public function toString(): stringReturns to string.
Returns
stringTest cases 2
Called from 1
Calls 2
- method-call PlanPrinter::print() line 267
- new PlanPrinter line 267
public function __toString(): stringReturns the canonical textual representation.
Returns
stringCalls 1
- method-call FixturePlan::toString() line 275
Private surface 1§
Implementation details, listed for orientation only.
private list<Relation|RelationChoice|string> $partsTest cases 156§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 40
FixturePlanTest::testADeclaredPlanEqualsTheParsedStringcallsFixturePlanTest::testAnEmptyPlanHasNoSubjectcallsFixturePlanTest::testAnOptionalSelfReferenceIsAllowedcallsFixturePlanTest::testAPlanBuiltFromAKeyedSpreadCanStillBeExtendedcallsFixturePlanTest::testAQuotedTableNameLosesItsQuotescallsFixturePlanTest::testAStringPartNamesAStandaloneTablecallsFixturePlanTest::testATableNameIsTakenWithoutSurroundingSpacecallsFixturePlanTest::testCastingToStringWritesThePlanBackcallsFixturePlanTest::testDependenciesOfReturnsAListEvenWhenTheMatchIsNotFirstcallsFixturePlanTest::testDependenciesOfSelectsRelationsWhereTheTableIsTheChildcallsFixturePlanTest::testDependentsOfReturnsAListEvenWhenTheMatchIsNotFirstcallsFixturePlanTest::testDependentsOfSelectsRelationsWhereTheTableIsTheParentcallsFixturePlanTest::testEveryBuilderMethodReturnsANewInstancecallsFixturePlanTest::testFromAcceptsAPlanAndCopiesItcallsFixturePlanTest::testFromReadsTheRelationStringcallsFixturePlanTest::testGenerationOrderCoversTablesThatStandAlonecallsFixturePlanTest::testGenerationOrderHandlesSeveralIndependentComponentscallsFixturePlanTest::testGenerationOrderPutsEveryParentBeforeItsChildrencallsFixturePlanTest::testOfAcceptsRelationsWithoutAStringcallsFixturePlanTest::testPartsSpreadFromAKeyedArrayAreStillReadInOrdercallsFixturePlanTest::testRootsAreTheTablesNothingHasToPrecedecallsFixturePlanTest::testRootsReturnsAListEvenWhenTheFirstTableIsNotOnecallsFixturePlanTest::testSelectKeepsTheSubjectWhenABranchHasNoRelationscallsFixturePlanTest::testSelectRetainsPartsBeforeAndAfterTheChoicecallsFixturePlanTest::testSubjectTableTheSubjectIsTheFirstTableNamedcallsFixturePlanTest::testTablesAreNotRepeatedcallsFixturePlanTest::testTableStartsAPlanWithNoRelationscallsFixturePlanTest::testTheStringAndTheObjectDescribeTheSamePlancallsFixturePlanTest::testTheSubjectIsNotNecessarilyGeneratedFirstcallsFixturePlanTest::testToStringWritesThePlanBackcallsFixturePlanTest::testTwoForeignKeysBetweenTheSameTablesAreAllowedcallsFixturePlanTest::testWithChoiceKeepsEveryPotentialTableInOrdercallsFixturePlanTest::testWithChoiceKeepsExistingSubjectsAndOrdinaryRelationscallsFixturePlanTest::testWithManyToOneAddsARelationcallsFixturePlanTest::testWithManyToOneCanMarkTheParentOptionalcallsFixturePlanTest::testWithOneToManyAddsARelationcallsFixturePlanTest::testWithOneToOneAddsARelationcallsFixturePlanTest::testWithRelationAcceptsAColumnRefForCompositeKeyscallsFixturePlanTest::testWithRelationAddsARelationDirectlycallsFixturePlanTest::testWithTableNamesATableThatHasNoRelationYetcalls
Other tests reaching this symbol 116
FixtureGenerationBench::setUpcallsPostgreSqlEndToEndTestcallsSqliteIntegrationTestcallsCaseSelectionTestcallsChoiceBindingsTestcallsChoiceValueExceptionTestcallsInverseRelationsTest::testKeyLeavesUnconditionalRelationsIndependentcallsInverseRelationsTest::testUniqueVisitsEquivalentInverseCasesOncecallsResolvedRowTest::testRetainsTheScopedPlanValuesAndArrivalcallsRowChoicesTest::testResolveInfersInverseValuesAndKeepsOtherChoicescallsRowChoicesTest::testResolveKeepsExplicitNullAndClearsInactiveKeyscallsRowChoicesTest::testResolvePreservesAnUnconditionalArrivalcallsRowChoicesTest::testResolveReplacesAnEquivalentInverseCandidateWithTheSelectedEdgecallsRowChoicesTest::testResolveSelectsPerRowWithoutChangingTheSourcePlancallsRowChoicesTest::testResolveSkipsEarlierChoicesForOtherTablescallsConnectedTablesTest::testConnectedToFollowsBothDirectionsAndSkipsOtherComponentscallsOverrideSpecsTest::testSpecsPreservesNamedAndPositionalRequestscallsRecursiveRelationExceptionTestcallsRelationCountsTestcallsRelationProjectionTest::testReferencedColumnsDeduplicatesParentKeyscallsRelationValueExceptionTestcallsRowBindingsTestcallsRowMaterializerTest::testMaterializeBoundsAnOptionalSelfRelationAfterAnotherTablecallsRowMaterializerTest::testMaterializeLinksEveryChildToTheGeneratedParentcallsRowMaterializerTest::testMaterializeParentDoesNotWalkBackAlongTheArrivalRelationcallsRowMaterializerTest::testMaterializeRowPreservesExplicitKeyscallsRowMaterializerTest::testToChildrenCopiesTheExistingParentKeycallsRowMaterializerTest::testToParentProjectsGeneratedKeyscallsGenerationRunTest::testAClaimedTableThatWasNeverReachedIsNotAListcallsGenerationRunTest::testATableThatGeneratedNothingReadsBackAsNullcallsGenerationRunTest::testClaimingDoesNotUndoWhatTheWalkAlreadyLearntcallsGenerationRunTest::testReachedReachingATableAsAListStickscallsGenerationRunTest::testToSetATableReachedOnlyAsASingleRowReadsBackAsOnecallsPlanGeneratorTest::testACompositeRelationCarriesEveryColumncallsPlanGeneratorTest::testACountOfZeroGeneratesNoRowscallsPlanGeneratorTest::testAListGivesOneRowPerEntrycallsPlanGeneratorTest::testAnOptionalChildMayGenerateNoneAtAllcallsPlanGeneratorTest::testAnOptionalOneToOneAskedForNoneIsNullcallsPlanGeneratorTest::testAnOptionalParentIsGeneratedWhenTheCallerAsksForItcallsPlanGeneratorTest::testAnOptionalParentNobodyAskedForIsLeftOutcallsPlanGeneratorTest::testAnUnboundedChildCountCanExceedItsMinimumcallsPlanGeneratorTest::testAnUnknownTableIsReportedcallsPlanGeneratorTest::testAnUnmentionedChildIsStillGeneratedcallsPlanGeneratorTest::testAOneToOneChildIsASingleRowcallsPlanGeneratorTest::testAOneToOneChildIsGeneratedExactlyOncecallsPlanGeneratorTest::testAOneToOneChildIsNeverGeneratedMoreThanOncecallsPlanGeneratorTest::testAParentIsGeneratedAndLinkedTocallsPlanGeneratorTest::testAPlanNamingAColumnTheTableLacksIsRejectedBeforeGeneratingcallsPlanGeneratorTest::testARequiredChildNeverGeneratesNonecallsPlanGeneratorTest::testARequiredParentIsGeneratedWhetherOrNotItWasAskedForcallsPlanGeneratorTest::testARowCarriesBothItsInheritedKeyAndItsOwnParentKeycallsPlanGeneratorTest::testATableReachableOnlyBackwardsAlongARelationIsStillPartOfTheWalkcallsPlanGeneratorTest::testChildRowsCarryTheParentKeycallsPlanGeneratorTest::testEntriesComeBackInTheOrderThePlanNamesThemcallsPlanGeneratorTest::testEveryChildOfAListGetsItsOwnParentcallsPlanGeneratorTest::testEveryOtherRelationOfAParentIsStillFollowedcallsPlanGeneratorTest::testFixingTheLinkingColumnLeavesTheParentAlonecallsPlanGeneratorTest::testGenerateAllRelationsInTheSelectedBranchcallsPlanGeneratorTest::testGenerateChildTablesSelectedPerPaymentcallsPlanGeneratorTest::testGenerateCompositeChoiceKeyscallsPlanGeneratorTest::testGenerateConflictingChildKeysAreRejectedcallsPlanGeneratorTest::testGenerateConflictingInverseDiscriminatorIsRejectedcallsPlanGeneratorTest::testGenerateConflictingParentKeysAreRejectedcallsPlanGeneratorTest::testGenerateExplicitReferencesWithoutInventingParentscallsPlanGeneratorTest::testGenerateFallbackAndNullBranchescallsPlanGeneratorTest::testGenerateInverseEquivalentCasesOncePerChildcallsPlanGeneratorTest::testGenerateInversePolymorphicChildrencallsPlanGeneratorTest::testGenerateInverseSubtypeParentcallsPlanGeneratorTest::testGenerateMixedChoiceRowscallsPlanGeneratorTest::testGenerateOptionalParentsWithNullReferencescallsPlanGeneratorTest::testGeneratePartialCompositeOverridesAreCarriedToTheParentcallsPlanGeneratorTest::testGeneratePolymorphicJunctionRowscallsPlanGeneratorTest::testGenerateRepeatedRolesFailWithoutUnboundedRecursioncallsPlanGeneratorTest::testGenerateSeededCaseSelectionIsReproduciblecallsPlanGeneratorTest::testGenerateTheTableThePlanIsAboutGetsOneRowcallsPlanGeneratorTest::testGenerateUnknownDiscriminatorColumnsAreRejectedcallsPlanGeneratorTest::testGenerateUnknownDiscriminatorReportsItsColumncallsPlanGeneratorTest::testKeysAreStoodInForEveryColumnARelationReadscallsPlanGeneratorTest::testOneSetOfValuesAppliesToEveryGeneratedRowcallsPlanGeneratorTest::testOverridesMayBeGivenAsTableOverridescallsPlanGeneratorTest::testTablesThatStandAloneAreGeneratedToocallsPlanGeneratorTest::testTheSubjectHonoursACountItWasGivencallsPlanGeneratorTest::testTheSubjectIsOneRowEvenWhenSomethingReferencesItcallsPlanSchemaExceptionTestcallsPlanSchemaValidatorTest::aColumnTheTableDoesNotHaveIsRejectedcallsPlanSchemaValidatorTest::testAGeneratedColumnCannotBeLinkedcallsPlanSchemaValidatorTest::testAGeneratedColumnCannotBeWrittenIntoEithercallsPlanSchemaValidatorTest::testATableNamedWithoutAnyRelationIsCheckedToocallsPlanSchemaValidatorTest::testATableTheResolverDoesNotKnowIsRejectedcallsPlanSchemaValidatorTest::testValidateAPlanMatchingTheSchemaPassescallsEndpointValidatorTestcallsConstructorHydrationTestcallsPropertyHydrationTestcallsChoiceCaseTestcallsChoiceDefinitionExceptionTestcallsChoiceLiteralTestcallsChoiceSyntaxTest::testParseKeepsOperatorTextInsideValuescallsChoiceValidationTestcallsPlanContentsTestcallsColumnRefTestcallsPlanStatementsTestcallsRelationCursorTestcallsRelationReaderTestcallsPlanParserTestcallsPlanPrinterTest::testPrintsATableOnlyPlanAsItsTableNamecallsPlanStructureExceptionTestcallsPlanSyntaxExceptionTestcallsPlanTablesTest::testStandaloneTablesExcludesRelationEndpointscallsRelationGroupsTestcallsStatementPrinterTestcallsRelationChoiceTestcallsRelationTestcallsPlanValidationTestcallsTableNameTest::testAssertTableNameAcceptsUnderscoresAndDollarSignscallsFixtureProviderTestcallsSqlSchemaProviderTestcalls
Relations§
Instantiated in 1
Static calls 1
Method calls 2
Type declarations 18
- type SqlFixture\Fixture\Choice\InverseRelations packages/sql-fixture/src/Fixture/Choice/InverseRelations.php:20
- type SqlFixture\Fixture\Choice\InverseRelations packages/sql-fixture/src/Fixture/Choice/InverseRelations.php:38
- type SqlFixture\Fixture\Choice\ResolvedRow packages/sql-fixture/src/Fixture/Choice/ResolvedRow.php:21
- type SqlFixture\Fixture\Choice\RowChoices packages/sql-fixture/src/Fixture/Choice/RowChoices.php:23
- type SqlFixture\Fixture\Generation\ConnectedTables packages/sql-fixture/src/Fixture/Generation/ConnectedTables.php:21
- type SqlFixture\Fixture\Generation\RelationProjection packages/sql-fixture/src/Fixture/Generation/RelationProjection.php:21
- type SqlFixture\Fixture\Generation\RowMaterializer packages/sql-fixture/src/Fixture/Generation/RowMaterializer.php:38
- type SqlFixture\Fixture\Generation\RowMaterializer packages/sql-fixture/src/Fixture/Generation/RowMaterializer.php:69
- type SqlFixture\Fixture\Generation\RowMaterializer packages/sql-fixture/src/Fixture/Generation/RowMaterializer.php:87
- type SqlFixture\Fixture\Generation\RowMaterializer packages/sql-fixture/src/Fixture/Generation/RowMaterializer.php:145
- type SqlFixture\Fixture\Generation\RowMaterializer packages/sql-fixture/src/Fixture/Generation/RowMaterializer.php:176
- type SqlFixture\Fixture\GenerationRun packages/sql-fixture/src/Fixture/GenerationRun.php:128
- type SqlFixture\Fixture\PlanGenerator packages/sql-fixture/src/Fixture/PlanGenerator.php:43
- type SqlFixture\Fixture\PlanSchemaValidator packages/sql-fixture/src/Fixture/PlanSchemaValidator.php:33
- type SqlFixture\Plan\PlanParser packages/sql-fixture/src/Plan/PlanParser.php:33
- type SqlFixture\Plan\PlanPrinter packages/sql-fixture/src/Plan/PlanPrinter.php:19
- type SqlFixture\Plan\Printing\PlanTables packages/sql-fixture/src/Plan/Printing/PlanTables.php:24
- type SqlFixture\Provider\FixtureProvider packages/sql-fixture/src/Provider/FixtureProvider.php:109