158 lines
3.2 KiB
PHP
158 lines
3.2 KiB
PHP
<?php
|
|
/*
|
|
* This file is part of DbUnit.
|
|
*
|
|
* (c) Sebastian Bergmann <sebastian@phpunit.de>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace PHPUnit\DbUnit;
|
|
|
|
use PHPUnit\DbUnit\Database\Connection;
|
|
use PHPUnit\DbUnit\DataSet\IDataSet;
|
|
use PHPUnit\DbUnit\Operation\Factory;
|
|
use PHPUnit\DbUnit\Operation\Operation;
|
|
|
|
/**
|
|
* Can be used as a foundation for new DatabaseTesters.
|
|
*/
|
|
abstract class AbstractTester implements Tester
|
|
{
|
|
/**
|
|
* @var Operation
|
|
*/
|
|
protected $setUpOperation;
|
|
|
|
/**
|
|
* @var Operation
|
|
*/
|
|
protected $tearDownOperation;
|
|
|
|
/**
|
|
* @var IDataSet
|
|
*/
|
|
protected $dataSet;
|
|
|
|
/**
|
|
* @var string
|
|
*/
|
|
protected $schema;
|
|
|
|
/**
|
|
* Creates a new database tester.
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->setUpOperation = Factory::CLEAN_INSERT();
|
|
$this->tearDownOperation = Factory::NONE();
|
|
}
|
|
|
|
/**
|
|
* Closes the specified connection.
|
|
*
|
|
* @param Connection $connection
|
|
*/
|
|
public function closeConnection(Connection $connection)
|
|
{
|
|
$connection->close();
|
|
}
|
|
|
|
/**
|
|
* Returns the test dataset.
|
|
*
|
|
* @return IDataSet
|
|
*/
|
|
public function getDataSet()
|
|
{
|
|
return $this->dataSet;
|
|
}
|
|
|
|
/**
|
|
* TestCases must call this method inside setUp().
|
|
*/
|
|
public function onSetUp()
|
|
{
|
|
$this->getSetUpOperation()->execute($this->getConnection(), $this->getDataSet());
|
|
}
|
|
|
|
/**
|
|
* TestCases must call this method inside tearDown().
|
|
*/
|
|
public function onTearDown()
|
|
{
|
|
$this->getTearDownOperation()->execute($this->getConnection(), $this->getDataSet());
|
|
}
|
|
|
|
/**
|
|
* Sets the test dataset to use.
|
|
*
|
|
* @param IDataSet $dataSet
|
|
*/
|
|
public function setDataSet(IDataSet $dataSet)
|
|
{
|
|
$this->dataSet = $dataSet;
|
|
}
|
|
|
|
/**
|
|
* Sets the schema value.
|
|
*
|
|
* @param string $schema
|
|
*/
|
|
public function setSchema($schema)
|
|
{
|
|
$this->schema = $schema;
|
|
}
|
|
|
|
/**
|
|
* Sets the DatabaseOperation to call when starting the test.
|
|
*
|
|
* @param Operation $setUpOperation
|
|
*/
|
|
public function setSetUpOperation(Operation $setUpOperation)
|
|
{
|
|
$this->setUpOperation = $setUpOperation;
|
|
}
|
|
|
|
/**
|
|
* Sets the DatabaseOperation to call when ending the test.
|
|
*
|
|
* @param Operation $tearDownOperation
|
|
*/
|
|
public function setTearDownOperation(Operation $tearDownOperation)
|
|
{
|
|
$this->tearDownOperation = $tearDownOperation;
|
|
}
|
|
|
|
/**
|
|
* Returns the schema value
|
|
*
|
|
* @return string
|
|
*/
|
|
protected function getSchema()
|
|
{
|
|
return $this->schema;
|
|
}
|
|
|
|
/**
|
|
* Returns the database operation that will be called when starting the test.
|
|
*
|
|
* @return Operation
|
|
*/
|
|
protected function getSetUpOperation()
|
|
{
|
|
return $this->setUpOperation;
|
|
}
|
|
|
|
/**
|
|
* Returns the database operation that will be called when ending the test.
|
|
*
|
|
* @return Operation
|
|
*/
|
|
protected function getTearDownOperation()
|
|
{
|
|
return $this->tearDownOperation;
|
|
}
|
|
}
|