<?php
declare(strict_types=1);
namespace ParagonIE\EasyDB\Tests;
use InvalidArgumentException;
use ParagonIE\EasyDB\EasyDB;
use ParagonIE\EasyDB\Exception\InvalidIdentifier;
use ParagonIE\EasyDB\Exception\InvalidTableName;
use ParagonIE\EasyDB\Exception\MustBeOneDimensionalArray;
use ParagonIE\EasyDB\Factory;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
#[CoversClass(EasyDB::class)]
#[CoversClass(Factory::class)]
#[CoversClass(MustBeOneDimensionalArray::class)]
class Is1DArrayThenDeleteReadOnlyTest extends EasyDBTestCase
{
/**
* @dataProvider goodFactoryCreateArgument2EasyDBProvider
* @param callable $cb
*/
#[DataProvider("goodFactoryCreateArgument2EasyDBProvider")]
public function testDeleteThrowsException(callable $cb): void
{
$db = $this->easyDBExpectedFromCallable($cb);
$this->expectException(MustBeOneDimensionalArray::class);
$db->delete('irrelevant_but_valid_tablename', [[1]]);
}
/**
* @dataProvider goodFactoryCreateArgument2EasyDBProvider
* @param callable $cb
*/
#[DataProvider("goodFactoryCreateArgument2EasyDBProvider")]
public function testDeleteTableNameEmptyThrowsException(callable $cb): void
{
$db = $this->easyDBExpectedFromCallable($cb);
$this->expectException(InvalidTableName::class);
$db->delete('', ['foo' => 'bar']);
}
/**
* @dataProvider goodFactoryCreateArgument2EasyDBProvider
* @param callable $cb
*/
#[DataProvider("goodFactoryCreateArgument2EasyDBProvider")]
public function testDeleteTableNameInvalidThrowsException(callable $cb): void
{
$db = $this->easyDBExpectedFromCallable($cb);
$this->expectException(InvalidIdentifier::class);
$db->delete('1foo', ['foo' => 'bar']);
}
/**
* @dataProvider goodFactoryCreateArgument2EasyDBProvider
* @param callable $cb
*/
#[DataProvider("goodFactoryCreateArgument2EasyDBProvider")]
public function testDeleteConditionsReturnsNull(callable $cb): void
{
$db = $this->easyDBExpectedFromCallable($cb);
$this->assertEquals(
$db->delete('irrelevant_but_valid_tablename', []),
null
);
}
}
|