Newer
Older
<?php
namespace Drupal\Tests\trash\Kernel;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\trash_test\Entity\TrashTest;
class TrashKernelTest extends TrashKernelTestBase {
public function testDeletion() {

Andrei Mateescu
committed
$entity = TrashTest::create();
assert($entity instanceof ContentEntityInterface);
$entity->save();

Andrei Mateescu
committed
$entity_id = $entity->id();
$this->assertNotNull(TrashTest::load($entity_id));
$this->assertTrue($entity->get('deleted')->isEmpty());
$this->assertNull($entity->get('deleted')->value);

Andrei Mateescu
committed
// Test the default 'active' trash context.
$entity = TrashTest::load($entity_id);
$this->assertNull($entity, 'Deleted entities can not be loaded in the default (active) trash context.');

Andrei Mateescu
committed
// Test the 'ignore' trash context.
$entity = $this->getTrashManager()->executeInTrashContext('ignore', function () use ($entity_id) {
return TrashTest::load($entity_id);
});
assert($entity instanceof ContentEntityInterface);
$this->assertNotNull($entity, 'Deleted entities can still be loaded in the "ignore" trash context.');
$this->assertEquals(\Drupal::time()->getRequestTime(), $entity->get('deleted')->value);

Andrei Mateescu
committed
$second_entity = TrashTest::create();
$second_entity->save();
$second_entity_id = $second_entity->id();
// Test the default 'active' trash context for multiple load.
$entities = TrashTest::loadMultiple();
$this->assertCount(1, $entities);
$this->assertEquals($second_entity_id, $entities[$second_entity_id]->id());
// Test the 'ignore' trash context for multiple load.
$entities = $this->getTrashManager()->executeInTrashContext('ignore', function () {
return TrashTest::loadMultiple();
});
$this->assertCount(2, $entities);
$this->assertEquals($entity_id, $entities[$entity_id]->id());
$this->assertEquals($second_entity_id, $entities[$second_entity_id]->id());