Same filename and directory in other branches
- 8.9.x core/tests/Drupal/KernelTests/Core/Database/InvalidDataTest.php
- 9 core/tests/Drupal/KernelTests/Core/Database/InvalidDataTest.php
Namespace
Drupal\KernelTests\Core\Database
File
core/tests/Drupal/KernelTests/Core/Database/InvalidDataTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\KernelTests\Core\Database;
use Drupal\Core\Database\IntegrityConstraintViolationException;
class InvalidDataTest extends DatabaseTestBase {
public function testInsertDuplicateData() {
$this
->expectException(IntegrityConstraintViolationException::class);
try {
$this->connection
->insert('test')
->fields([
'name',
'age',
'job',
])
->values([
'name' => 'Elvis',
'age' => 63,
'job' => 'Singer',
])
->values([
'name' => 'John',
'age' => 17,
'job' => 'Consultant',
])
->values([
'name' => 'Frank',
'age' => 75,
'job' => 'Singer',
])
->execute();
$this
->fail('Insert succeeded when it should not have.');
} catch (IntegrityConstraintViolationException $e) {
$this
->assertFalse($this->connection
->select('test')
->fields('test', [
'name',
'age',
])
->condition('age', [
63,
17,
75,
], 'IN')
->execute()
->fetchObject());
throw $e;
}
}
public function testInsertDuplicateDataFromSelect() {
$this->connection
->insert('test_people')
->fields([
'name',
'age',
'job',
])
->values([
'name' => 'Elvis',
'age' => 63,
'job' => 'Singer',
])
->values([
'name' => 'John',
'age' => 17,
'job' => 'Consultant',
])
->values([
'name' => 'Frank',
'age' => 75,
'job' => 'Bass',
])
->execute();
$query = $this->connection
->select('test_people', 'tp')
->fields('tp', [
'name',
'age',
'job',
])
->orderBy('name');
$this
->expectException(IntegrityConstraintViolationException::class);
try {
$this->connection
->insert('test')
->from($query)
->execute();
$this
->fail('Insert succeeded when it should not have.');
} catch (IntegrityConstraintViolationException $e) {
$this
->assertFalse($this->connection
->select('test')
->fields('test', [
'name',
'age',
])
->condition('age', [
63,
75,
17,
30,
], 'IN')
->execute()
->fetchObject());
throw $e;
}
}
}
Classes