+ /**
+ * Ensures the static access cache works correctly in the absence of an UUID.
+ *
+ * @see entity_test_entity_access()
+ */
+ public function testEntityWithoutUuidAccessCache() {
+ $account = $this->createUser();
+
+ $entity1 = EntityTestNoUuid::create([
+ 'name' => 'Accessible',
+ ]);
+ $entity1->save();
+
+ $entity2 = EntityTestNoUuid::create([
+ 'name' => 'Inaccessible',
+ ]);
+ $entity2->save();
+
+ $this->assertTrue($entity1->access('delete', $account), 'Entity 1 can be deleted.');
+ $this->assertFalse($entity2->access('delete', $account), 'Entity 2 CANNOT be deleted.');
+
+ $entity1
+ ->setName('Inaccessible')
+ ->setNewRevision();
+ $entity1->save();
+
+ $this->assertFalse($entity1->access('delete', $account), 'Entity 1 revision 2 CANNOT be deleted.');
+ }
+
+ /**
+ * Ensures the static access cache works correctly with a UUID and revisions.
+ *
+ * @see entity_test_entity_access()
+ */
+ public function testEntityWithUuidAccessCache() {
+ $account = $this->createUser();
+
+ $entity1 = EntityTestRev::create([
+ 'name' => 'Accessible',
+ ]);
+ $entity1->save();
+
+ $entity2 = EntityTestRev::create([
+ 'name' => 'Inaccessible',
+ ]);
+ $entity2->save();
+
+ $this->assertTrue($entity1->access('delete', $account), 'Entity 1 can be deleted.');
+ $this->assertFalse($entity2->access('delete', $account), 'Entity 2 CANNOT be deleted.');
+
+ $entity1
+ ->setName('Inaccessible')
+ ->setNewRevision();
+ $entity1->save();
+
+ $this->assertFalse($entity1->access('delete', $account), 'Entity 1 revision 2 CANNOT be deleted.');
+ }
+