lepisi-pengumuman/vendor/phpunit/dbunit/tests/Operation/OperationsMySQLTest.php

106 lines
3.5 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.
*/
use PHPUnit\DbUnit\Database\DefaultConnection;
use PHPUnit\DbUnit\DataSet\CompositeDataSet;
use PHPUnit\DbUnit\DataSet\DefaultDataSet;
use PHPUnit\DbUnit\DataSet\DefaultTable;
use PHPUnit\DbUnit\DataSet\DefaultTableMetadata;
use PHPUnit\DbUnit\DataSet\FlatXmlDataSet;
use PHPUnit\DbUnit\Operation\Truncate;
use PHPUnit\DbUnit\TestCase;
require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DatabaseTestUtility.php';
class Extensions_Database_Operation_OperationsMySQLTest extends TestCase
{
protected function setUp()
{
if (!extension_loaded('pdo_mysql')) {
$this->markTestSkipped('pdo_mysql is required to run this test.');
}
if (!defined('PHPUNIT_TESTSUITE_EXTENSION_DATABASE_MYSQL_DSN')) {
$this->markTestSkipped('No MySQL server configured for this test.');
}
parent::setUp();
}
public function getConnection()
{
return new DefaultConnection(DBUnitTestUtility::getMySQLDB(), 'mysql');
}
public function getDataSet()
{
return new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/OperationsMySQLTestFixture.xml');
}
/**
* @covers Truncate::execute
*/
public function testTruncate()
{
$truncateOperation = new Truncate();
$truncateOperation->execute($this->getConnection(), $this->getDataSet());
$expectedDataSet = new DefaultDataSet([
new DefaultTable(
new DefaultTableMetadata('table1',
['table1_id', 'column1', 'column2', 'column3', 'column4'])
),
new DefaultTable(
new DefaultTableMetadata('table2',
['table2_id', 'table1_id', 'column5', 'column6', 'column7', 'column8'])
),
new DefaultTable(
new DefaultTableMetadata('table3',
['table3_id', 'table2_id', 'column9', 'column10', 'column11', 'column12'])
),
]);
$this->assertDataSetsEqual($expectedDataSet, $this->getConnection()->createDataSet());
}
public function getCompositeDataSet()
{
$compositeDataset = new CompositeDataSet();
$dataset = $this->createXMLDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/TruncateCompositeTest.xml');
$compositeDataset->addDataSet($dataset);
return $compositeDataset;
}
public function testTruncateComposite()
{
$truncateOperation = new Truncate();
$truncateOperation->execute($this->getConnection(), $this->getCompositeDataSet());
$expectedDataSet = new DefaultDataSet([
new DefaultTable(
new DefaultTableMetadata('table1',
['table1_id', 'column1', 'column2', 'column3', 'column4'])
),
new DefaultTable(
new DefaultTableMetadata('table2',
['table2_id', 'table1_id', 'column5', 'column6', 'column7', 'column8'])
),
new DefaultTable(
new DefaultTableMetadata('table3',
['table3_id', 'table2_id', 'column9', 'column10', 'column11', 'column12'])
),
]);
$this->assertDataSetsEqual($expectedDataSet, $this->getConnection()->createDataSet());
}
}