Class FixtureManager
A factory class to manage the life cycle of test fixtures
Property Summary
-
$_debug protected
boolIs the test runner being run with
--debugenabled. When true, fixture SQL will also be logged. -
$_fixtureMap protected
Cake\Datasource\FixtureInterface[]Holds the fixture classes that where instantiated indexed by class name
-
$_initialized protected
boolWas this instance already initialized?
-
$_insertionMap protected
arrayA map of connection names and the fixture currently in it.
-
$_loaded protected
Cake\Datasource\FixtureInterface[]Holds the fixture classes that where instantiated
-
$_processed protected
arrayList 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
Inspects the test to look for unloaded fixtures and loads them
-
isFixtureSetup() public
Check whether or not a fixture has been inserted in a given connection name.
-
load() public
Creates the fixtures tables and inserts data on them.
-
loadSingle() public
Creates a single fixture table and loads data into it.
-
loaded() public
Get the loaded fixtures.
-
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 $fixtures): array
Get the unique list of connections that a set of fixtures contains.
Parameters
-
array$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
voidThrows
UnexpectedValueExceptionwhen a referenced fixture does not exist.
_runOperation() ¶ protected
_runOperation(array $fixtures, callable $operation): void
Run a function on each connection and collection of fixtures.
Parameters
-
array$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\Database\Connection $db, array $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\Database\Connection$db The Connection object instance to use
-
array$sources The existing tables in the datasource.
-
bool$drop optional whether drop the fixture if it is already created or not
Returns
voidfixturize() ¶ public
fixturize(Cake\TestSuite\TestCase $test): void
Inspects the test to look for unloaded fixtures and loads them
Parameters
-
Cake\TestSuite\TestCase$test The test case to inspect.
Returns
voidisFixtureSetup() ¶ public
isFixtureSetup(string $connection, Cake\Datasource\FixtureInterface $fixture): bool
Check whether or not 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
boolload() ¶ public
load(Cake\TestSuite\TestCase $test): void
Creates the fixtures tables and inserts data on them.
Parameters
-
Cake\TestSuite\TestCase$test The test to inspect for fixture loading.
Returns
voidThrows
Cake\Core\Exception\ExceptionWhen fixture records cannot be inserted.
loadSingle() ¶ public
loadSingle(string $name, Cake\Datasource\ConnectionInterface|null $db = null, bool $dropTables = true): void
Creates a single fixture table and loads data into it.
Parameters
-
string$name of the fixture
-
Cake\Datasource\ConnectionInterface|null$db optional Connection instance or leave null to get a Connection from the fixture
-
bool$dropTables optional Whether or not tables should be dropped and re-created.
Returns
voidThrows
UnexpectedValueExceptionif $name is not a previously loaded class
setDebug() ¶ public
setDebug(bool $debug): void
Modify the debug mode.
Parameters
-
bool$debug Whether or not fixture debug mode is enabled.
Returns
voidunload() ¶ public
unload(Cake\TestSuite\TestCase $test): void
Truncates the fixtures tables
Parameters
-
Cake\TestSuite\TestCase$test The test to inspect for fixture unloading.
Returns
voidProperty 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
Cake\Datasource\FixtureInterface[]$_loaded ¶ protected
Holds the fixture classes that where instantiated
Type
Cake\Datasource\FixtureInterface[]