Add @VirtualEntity checking to Ofy's deleteWithoutBackup()

This was an oversight I noticed ages ago, so resurrecting some old local changes I had to correct it.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=146812322
This commit is contained in:
nickfelt 2017-02-07 11:41:05 -08:00 committed by Ben McIlwain
parent d2bc569b4b
commit 5d4a88e5ce
7 changed files with 78 additions and 12 deletions

View file

@ -20,6 +20,7 @@ import static com.googlecode.objectify.ObjectifyService.register;
import static google.registry.model.common.EntityGroupRoot.getCrossTldKey;
import static google.registry.model.ofy.CommitLogBucket.getBucketKey;
import static google.registry.model.ofy.ObjectifyService.ofy;
import static google.registry.testing.TestObject.TestVirtualObject;
import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key;
@ -110,7 +111,7 @@ public class OfyCommitLogTest {
ofy().transact(new VoidWork() {
@Override
public void vrun() {
ofy().deleteWithoutBackup().entity(Key.create(Root.class, 1));
ofy().deleteWithoutBackup().key(Key.create(Root.class, 1));
}});
assertThat(ofy().load().key(Key.create(Root.class, 1)).now()).isNull();
assertThat(ofy().load().type(CommitLogManifest.class)).isEmpty();
@ -212,7 +213,6 @@ public class OfyCommitLogTest {
public void testTransactNew_saveNotBackedUpKind_throws() throws Exception {
final CommitLogManifest backupsArentAllowedOnMe =
CommitLogManifest.create(getBucketKey(1), clock.nowUtc(), ImmutableSet.<Key<?>>of());
ofy().saveWithoutBackup().entity(backupsArentAllowedOnMe).now();
thrown.expect(IllegalArgumentException.class, "Can't save/delete a @NotBackedUp");
ofy().transactNew(new VoidWork() {
@Override
@ -221,6 +221,42 @@ public class OfyCommitLogTest {
}});
}
@Test
public void testTransactNew_deleteVirtualEntityKey_throws() throws Exception {
final Key<TestVirtualObject> virtualEntityKey = TestVirtualObject.createKey("virtual");
thrown.expect(IllegalArgumentException.class, "Can't save/delete a @VirtualEntity");
ofy().transactNew(new VoidWork() {
@Override
public void vrun() {
ofy().delete().key(virtualEntityKey);
}});
}
@Test
public void testTransactNew_saveVirtualEntity_throws() throws Exception {
final TestVirtualObject virtualEntity = TestVirtualObject.create("virtual");
thrown.expect(IllegalArgumentException.class, "Can't save/delete a @VirtualEntity");
ofy().transactNew(new VoidWork() {
@Override
public void vrun() {
ofy().save().entity(virtualEntity);
}});
}
@Test
public void test_deleteWithoutBackup_withVirtualEntityKey_throws() throws Exception {
final Key<TestVirtualObject> virtualEntityKey = TestVirtualObject.createKey("virtual");
thrown.expect(IllegalArgumentException.class, "Can't save/delete a @VirtualEntity");
ofy().deleteWithoutBackup().key(virtualEntityKey);
}
@Test
public void test_saveWithoutBackup_withVirtualEntity_throws() throws Exception {
final TestVirtualObject virtualEntity = TestVirtualObject.create("virtual");
thrown.expect(IllegalArgumentException.class, "Can't save/delete a @VirtualEntity");
ofy().saveWithoutBackup().entity(virtualEntity);
}
@Test
public void testTransact_twoSavesOnSameKey_throws() throws Exception {
thrown.expect(IllegalArgumentException.class, "Multiple entries with same key");