Class FixtureManager
A factory class to manage the life cycle of test fixtures
Property Summary
-
$_debug protected
bool
Is the test runner being run with
--debug
enabled. When true, fixture SQL will also be logged. -
$_fixtureMap protected
arrayCake\Datasource\FixtureInterface>
Holds the fixture classes that where instantiated indexed by class name
-
$_initialized protected
bool
Was this instance already initialized?
-
$_insertionMap protected
array<string, arrayCake\Datasource\FixtureInterface>>
A map of connection names and the fixture currently in it.
-
$_loaded protected
arrayCake\Datasource\FixtureInterface>
Holds the fixture classes that where instantiated
-
$_processed protected
array<string, bool>
List of TestCase class name that have been processed
Method Summary
-
_aliasConnections() protected
Add aliases for all non test prefixed connections.
-
_fixtureConnections() protected
Get the unique list of connections that a set of fixtures contains.
-
_initDb() protected
Initializes this class with a DataSource object to use as default for all fixtures
-
_loadFixtures() protected
Looks for fixture files and instantiates the classes accordingly
-
_runOperation() protected
Run a function on each connection and collection of fixtures.
-
_setupTable() protected
Runs the drop and create commands on the fixtures if necessary.
-
fixturize() public
-
getInserted() public
-
isFixtureSetup() public
Check whether a fixture has been inserted in a given connection name.
-
load() public
-
loadSingle() public
-
loaded() public
-
setDebug() public
Modify the debug mode.
-
shutDown() public
Drop all fixture tables loaded by this class
-
unload() public
Truncates the fixtures tables
Method Detail
_aliasConnections() ¶ protected
_aliasConnections(): void
Add aliases for all non test prefixed connections.
This allows models to use the test connections without a pile of configuration work.
Returns
void
_fixtureConnections() ¶ protected
_fixtureConnections(array<string> $fixtures): array
Get the unique list of connections that a set of fixtures contains.
Parameters
-
array<string>
$fixtures The array of fixtures a list of connections is needed from.
Returns
array
_initDb() ¶ protected
_initDb(): void
Initializes this class with a DataSource object to use as default for all fixtures
Returns
void
_loadFixtures() ¶ protected
_loadFixtures(Cake\TestSuite\TestCase $test): void
Looks for fixture files and instantiates the classes accordingly
Parameters
-
Cake\TestSuite\TestCase
$test The test suite to load fixtures for.
Returns
void
Throws
UnexpectedValueException
when a referenced fixture does not exist.
_runOperation() ¶ protected
_runOperation(array<string> $fixtures, callable $operation): void
Run a function on each connection and collection of fixtures.
Parameters
-
array<string>
$fixtures A list of fixtures to operate on.
-
callable
$operation The operation to run on each connection + fixture set.
Returns
void
_setupTable() ¶ protected
_setupTable(Cake\Datasource\FixtureInterface $fixture, Cake\Datasource\ConnectionInterface $db, array<string> $sources, bool $drop = true): void
Runs the drop and create commands on the fixtures if necessary.
Parameters
-
Cake\Datasource\FixtureInterface
$fixture the fixture object to create
-
Cake\Datasource\ConnectionInterface
$db The Connection object instance to use
-
array<string>
$sources The existing tables in the datasource.
-
bool
$drop optional whether drop the fixture if it is already created or not
Returns
void
fixturize() ¶ public
fixturize(Cake\TestSuite\TestCase $test): void
Parameters
-
Cake\TestSuite\TestCase
$test Test case
Returns
void
isFixtureSetup() ¶ public
isFixtureSetup(string $connection, Cake\Datasource\FixtureInterface $fixture): bool
Check whether a fixture has been inserted in a given connection name.
Parameters
-
string
$connection The connection name.
-
Cake\Datasource\FixtureInterface
$fixture The fixture to check.
Returns
bool
load() ¶ public
load(Cake\TestSuite\TestCase $test): void
Parameters
-
Cake\TestSuite\TestCase
$test Test case
Returns
void
Throws
RuntimeException
loadSingle() ¶ public
loadSingle(string $name, Cake\Datasource\ConnectionInterface|null $connection = null, bool $dropTables = true): void
Parameters
-
string
$name Name
-
Cake\Datasource\ConnectionInterface|null
$connection optional Connection
-
bool
$dropTables optional Drop all tables prior to loading schema files
Returns
void
Throws
UnexpectedValueException
loaded() ¶ public
loaded(): Cake\Datasource\FixtureInterface[]
Returns
Cake\Datasource\FixtureInterface[]
setDebug() ¶ public
setDebug(bool $debug): void
Modify the debug mode.
Parameters
-
bool
$debug Whether fixture debug mode is enabled.
Returns
void
unload() ¶ public
unload(Cake\TestSuite\TestCase $test): void
Truncates the fixtures tables
Parameters
-
Cake\TestSuite\TestCase
$test The test to inspect for fixture unloading.
Returns
void
Property Detail
$_debug ¶ protected
Is the test runner being run with --debug
enabled.
When true, fixture SQL will also be logged.
Type
bool
$_fixtureMap ¶ protected
Holds the fixture classes that where instantiated indexed by class name
Type
arrayCake\Datasource\FixtureInterface>
$_insertionMap ¶ protected
A map of connection names and the fixture currently in it.
Type
array<string, arrayCake\Datasource\FixtureInterface>>
$_loaded ¶ protected
Holds the fixture classes that where instantiated
Type
arrayCake\Datasource\FixtureInterface>
$_processed ¶ protected
List of TestCase class name that have been processed
Type
array<string, bool>