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

148 lines
5.6 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\DefaultDataSet;
use PHPUnit\DbUnit\DataSet\DefaultTable;
use PHPUnit\DbUnit\DataSet\DefaultTableMetadata;
use PHPUnit\DbUnit\DataSet\FlatXmlDataSet;
use PHPUnit\DbUnit\Operation\Delete;
use PHPUnit\DbUnit\Operation\DeleteAll;
use PHPUnit\DbUnit\Operation\Insert;
use PHPUnit\DbUnit\Operation\Update;
use PHPUnit\DbUnit\Operation\Truncate;
use PHPUnit\DbUnit\Operation\Replace;
use PHPUnit\DbUnit\TestCase;
require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DatabaseTestUtility.php';
class Extensions_Database_Operation_OperationsTest extends TestCase
{
protected function setUp()
{
if (!extension_loaded('pdo_sqlite')) {
$this->markTestSkipped('PDO/SQLite is required to run this test.');
}
parent::setUp();
}
public function getConnection()
{
return new DefaultConnection(DBUnitTestUtility::getSQLiteMemoryDB(), 'sqlite');
}
public function getDataSet()
{
return new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/OperationsTestFixture.xml');
}
public function testDelete()
{
$deleteOperation = new Delete();
$deleteOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/DeleteOperationTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/DeleteOperationResult.xml'), $this->getConnection()->createDataSet());
}
public function testDeleteAll()
{
$deleteAllOperation = new DeleteAll();
$deleteAllOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/DeleteAllOperationTest.xml'));
$expectedDataSet = new DefaultDataSet([
new DefaultTable(
new DefaultTableMetadata('table1',
['table1_id', 'column1', 'column2', 'column3', 'column4'])
),
new DefaultTable(
new DefaultTableMetadata('table2',
['table2_id', 'column5', 'column6', 'column7', 'column8'])
),
new DefaultTable(
new DefaultTableMetadata('table3',
['table3_id', 'column9', 'column10', 'column11', 'column12'])
),
]);
$this->assertDataSetsEqual($expectedDataSet, $this->getConnection()->createDataSet());
}
public function testTruncate()
{
$truncateOperation = new Truncate();
$truncateOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/DeleteAllOperationTest.xml'));
$expectedDataSet = new DefaultDataSet([
new DefaultTable(
new DefaultTableMetadata('table1',
['table1_id', 'column1', 'column2', 'column3', 'column4'])
),
new DefaultTable(
new DefaultTableMetadata('table2',
['table2_id', 'column5', 'column6', 'column7', 'column8'])
),
new DefaultTable(
new DefaultTableMetadata('table3',
['table3_id', 'column9', 'column10', 'column11', 'column12'])
),
]);
$this->assertDataSetsEqual($expectedDataSet, $this->getConnection()->createDataSet());
}
public function testInsert()
{
$insertOperation = new Insert();
$insertOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/InsertOperationTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/InsertOperationResult.xml'), $this->getConnection()->createDataSet());
}
public function testUpdate()
{
$updateOperation = new Update();
$updateOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/UpdateOperationTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/UpdateOperationResult.xml'), $this->getConnection()->createDataSet());
}
public function testReplace()
{
$replaceOperation = new Replace();
$replaceOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/ReplaceOperationTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/ReplaceOperationResult.xml'), $this->getConnection()->createDataSet());
}
public function testInsertEmptyTable()
{
$insertOperation = new Insert();
$insertOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/EmptyTableInsertTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/EmptyTableInsertResult.xml'), $this->getConnection()->createDataSet());
}
public function testInsertAllEmptyTables()
{
$insertOperation = new Insert();
$insertOperation->execute($this->getConnection(), new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/AllEmptyTableInsertTest.xml'));
$this->assertDataSetsEqual(new FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/AllEmptyTableInsertResult.xml'), $this->getConnection()->createDataSet());
}
}