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
Cake\Datasource\FixtureInterface[]
Holds the fixture classes that where instantiated indexed by class name
-
$_initialized protected
bool
Was this instance already initialized?
-
$_insertionMap protected
array
A map of connection names and the fixture currently in it.
-
$_loaded protected
Cake\Datasource\FixtureInterface[]
Holds the fixture classes that where instantiated
-
$_processed protected
array
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
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
void
Throws
UnexpectedValueException
when 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
void
fixturize() ¶ 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
void
isFixtureSetup() ¶ 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
bool
load() ¶ 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
void
Throws
Cake\Core\Exception\Exception
When 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
void
Throws
UnexpectedValueException
if $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
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
Cake\Datasource\FixtureInterface[]
$_loaded ¶ protected
Holds the fixture classes that where instantiated
Type
Cake\Datasource\FixtureInterface[]