3 namespace Drupal\KernelTests\Core\Entity;
5 use Drupal\entity_test\Entity\EntityTestRev;
8 * Test entity duplication.
12 class EntityDuplicateTest extends EntityKernelTestBase {
15 * @var \Drupal\Core\Entity\ContentEntityStorageInterface
17 protected $entityTestRevStorage;
22 protected function setUp() {
24 $this->installEntitySchema('entity_test_rev');
25 $this->entityTestRevStorage = $this->container->get('entity_type.manager')->getStorage('entity_test_rev');
29 * Test duplicating a non-default revision.
31 public function testDuplicateNonDefaultRevision() {
32 $entity = EntityTestRev::create([
33 'name' => 'First Revision',
36 $first_revision_id = $entity->getRevisionId();
38 $entity->setNewRevision(TRUE);
39 $entity->name = 'Second Revision';
42 $duplicate_first_revision = $this->entityTestRevStorage->loadRevision($first_revision_id)->createDuplicate();
43 $this->assertTrue($duplicate_first_revision->isDefaultRevision(), 'Duplicating a non-default revision creates a default revision.');
44 $this->assertEquals($duplicate_first_revision->label(), 'First Revision');
45 $duplicate_first_revision->save();
47 $duplicate_first_revision->name = 'Updated name';
48 $duplicate_first_revision->save();
50 $this->entityTestRevStorage->resetCache();
51 $duplicate_first_revision = EntityTestRev::load($duplicate_first_revision->id());
52 $this->assertEquals('Updated name', $duplicate_first_revision->label());