Namespace
Drupal\Tests\dbtng_example\Kernel
File
dbtng_example/tests/src/Kernel/DbtngExampleRepositoryTest.php
View source
<?php
namespace Drupal\Tests\dbtng_example\Kernel;
use Drupal\KernelTests\KernelTestBase;
class DbtngExampleRepositoryTest extends KernelTestBase {
protected $defaultTheme = 'stark';
protected static $modules = [
'dbtng_example',
];
protected function setUp() {
parent::setUp();
$this
->installSchema('dbtng_example', 'dbtng_example');
$this->container
->get('module_handler')
->invoke('dbtng_example', 'install');
}
public function testDbtngExampleStorage() {
$repository = $this->container
->get('dbtng_example.repository');
$entry = [
'name' => 'James',
'surname' => 'Doe',
'age' => 23,
];
$repository
->insert($entry);
$entry = [
'name' => 'Jane',
'surname' => 'NotDoe',
'age' => 19,
];
$repository
->insert($entry);
$result = $repository
->load();
$this
->assertCount(4, $result);
$result = $repository
->load([
'surname' => 'Doe',
]);
$this
->assertCount(2, $result, 'Did not find two entries in the table with surname = "Doe".');
$result = $repository
->load([
'surname' => 'NotDoe',
]);
$this
->assertCount(1, $result, 'Did not find one entry in the table with surname "NotDoe');
$entry = $result[0];
$entry->surname = "NowDoe";
$this
->assertNotEquals(0, $repository
->update((array) $entry));
$result = $repository
->load([
'surname' => 'NowDoe',
]);
$this
->assertCount(1, $result, "Did not find renamed 'NowDoe' surname.");
$result = $repository
->load([
'name' => 'John',
'surname' => 'Doe',
]);
$this
->assertCount(1, $result, 'Did not find one entry for John Doe.');
$entry = (array) end($result);
$entry['age'] = 45;
$repository
->update((array) $entry);
$result = $repository
->load([
'surname' => 'NowDoe',
]);
$this
->assertCount(1, $result, 'Did not find one entry with surname = Nowdoe.');
$entry = (array) end($result);
$this
->assertEquals('Jane', $entry['name'], 'The name Jane is not found in the entry.');
$this
->assertEquals('NowDoe', $entry['surname'], 'The surname NowDoe is not found in the entry.');
$repository
->delete($entry);
$result = $repository
->load();
$this
->assertCount(3, $result, 'Did not find only three records, a record might not have been deleted.');
}
}
Classes