Class FixtureManager

A factory class to manage the life cycle of test fixtures

Properties summary

  • $_debug protected
    bool

    Is the test runner being run with --debug enabled.

  • $_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()

Add aliases for all non test prefixed connections.

This allows models to use the test connections without a pile of configuration work.

_fixtureConnections() protected

_fixtureConnections(array $fixtures)

Get the unique list of connections that a set of fixtures contains.

Parameters

string[] $fixtures

The array of fixtures a list of connections is needed from.

Returns

array

An array of connection names.

_initDb() protected

_initDb()

Initializes this class with a DataSource object to use as default for all fixtures

_loadFixtures() protected

_loadFixtures(\Cake\TestSuite\TestCase $test)

Looks for fixture files and instantiates the classes accordingly

Parameters

\Cake\TestSuite\TestCase $test

The test suite to load fixtures for.

Throws

UnexpectedValueException
when a referenced fixture does not exist.

_runOperation() protected

_runOperation(array $fixtures, callable $operation)

Run a function on each connection and collection of fixtures.

Parameters

string[] $fixtures

A list of fixtures to operate on.

callable $operation

The operation to run on each connection + fixture set.

_setupTable() protected

_setupTable(\Cake\Datasource\FixtureInterface $fixture, \Cake\Datasource\ConnectionInterface $db, array $sources, bool $drop)

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

string[] $sources

The existing tables in the datasource.

bool $drop optional

whether drop the fixture if it is already created or not

fixturize() public

fixturize(\Cake\TestSuite\TestCase $test)

Inspects the test to look for unloaded fixtures and loads them

Parameters

\Cake\TestSuite\TestCase $test

The test case to inspect.

isFixtureSetup() public

isFixtureSetup(string $connection, \Cake\Datasource\FixtureInterface $fixture)

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)

Creates the fixtures tables and inserts data on them.

Parameters

\Cake\TestSuite\TestCase $test

The test to inspect for fixture loading.

Throws

Cake\Core\Exception\Exception
When fixture records cannot be inserted.
RuntimeException

loadSingle() public

loadSingle(string $name, ?\Cake\Datasource\ConnectionInterface $db, bool $dropTables)

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 null to get a Connection from the fixture.

bool $dropTables optional

Whether or not tables should be dropped and re-created.

Throws

UnexpectedValueException
if $name is not a previously loaded class

loaded() public

loaded()

Get the loaded fixtures.

Returns

\Cake\Datasource\FixtureInterface[]

setDebug() public

setDebug(bool $debug)

Modify the debug mode.

Parameters

bool $debug

Whether or not fixture debug mode is enabled.

shutDown() public

shutDown()

Drop all fixture tables loaded by this class

unload() public

unload(\Cake\TestSuite\TestCase $test)

Truncates the fixtures tables

Parameters

\Cake\TestSuite\TestCase $test

The test to inspect for fixture unloading.

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[]

$_initialized protected

Was this instance already initialized?

Type

bool

$_insertionMap protected

A map of connection names and the fixture currently in it.

Type

array

$_loaded protected

Holds the fixture classes that where instantiated

Type

\Cake\Datasource\FixtureInterface[]

$_processed protected

List of TestCase class name that have been processed

Type

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.TestSuite.Fixture.FixtureManager.html