Migrate away from VoidWorks

This is one last hanging piece of work left over from last year's Java 8
migration. There's no functionality changes in this CL, just refactoring.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201947600
This commit is contained in:
mcilwain 2018-06-25 07:04:26 -07:00 committed by Ben McIlwain
parent 7d3cb3d426
commit d3364b0387
18 changed files with 349 additions and 502 deletions

View file

@ -17,7 +17,6 @@ package google.registry.model.common;
import static com.google.common.truth.Truth.assertThat;
import static google.registry.model.ofy.ObjectifyService.ofy;
import com.googlecode.objectify.VoidWork;
import google.registry.testing.AppEngineRule;
import org.junit.After;
import org.junit.Rule;
@ -47,11 +46,10 @@ public class GaeUserIdConverterTest {
@Test
public void testSuccess_inTransaction() {
ofy().transactNew(new VoidWork() {
@Override
public void vrun() {
assertThat(GaeUserIdConverter.convertEmailAddressToGaeUserId("example@example.com"))
.matches("[0-9]+");
}});
ofy()
.transactNew(
() ->
assertThat(GaeUserIdConverter.convertEmailAddressToGaeUserId("example@example.com"))
.matches("[0-9]+"));
}
}

View file

@ -83,13 +83,13 @@ public class OfyTest {
// This can't be initialized earlier because namespaces need the AppEngineRule to work.
}
private void doBackupGroupRootTimestampInversionTest(VoidWork work) {
private void doBackupGroupRootTimestampInversionTest(Runnable runnable) {
DateTime groupTimestamp = ofy().load().key(someObject.getParent()).now()
.getUpdateAutoTimestamp().getTimestamp();
// Set the clock in Ofy to the same time as the backup group root's save time.
Ofy ofy = new Ofy(new FakeClock(groupTimestamp));
TimestampInversionException thrown =
assertThrows(TimestampInversionException.class, () -> ofy.transact(work));
assertThrows(TimestampInversionException.class, () -> ofy.transact(runnable));
assertThat(thrown)
.hasMessageThat()
.contains(
@ -101,20 +101,12 @@ public class OfyTest {
@Test
public void testBackupGroupRootTimestampsMustIncreaseOnSave() {
doBackupGroupRootTimestampInversionTest(new VoidWork() {
@Override
public void vrun() {
ofy().save().entity(someObject);
}});
doBackupGroupRootTimestampInversionTest(() -> ofy().save().entity(someObject));
}
@Test
public void testBackupGroupRootTimestampsMustIncreaseOnDelete() {
doBackupGroupRootTimestampInversionTest(new VoidWork() {
@Override
public void vrun() {
ofy().delete().entity(someObject);
}});
doBackupGroupRootTimestampInversionTest(() -> ofy().delete().entity(someObject));
}
@Test
@ -125,12 +117,9 @@ public class OfyTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
ofy().save().entity(someObject);
ofy().save().entity(someObject);
}
() -> {
ofy().save().entity(someObject);
ofy().save().entity(someObject);
}));
assertThat(thrown).hasMessageThat().contains("Multiple entries with same key");
}
@ -143,12 +132,9 @@ public class OfyTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
ofy().delete().entity(someObject);
ofy().delete().entity(someObject);
}
() -> {
ofy().delete().entity(someObject);
ofy().delete().entity(someObject);
}));
assertThat(thrown).hasMessageThat().contains("Multiple entries with same key");
}
@ -161,12 +147,9 @@ public class OfyTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
ofy().save().entity(someObject);
ofy().delete().entity(someObject);
}
() -> {
ofy().save().entity(someObject);
ofy().delete().entity(someObject);
}));
assertThat(thrown).hasMessageThat().contains("Multiple entries with same key");
}
@ -179,12 +162,9 @@ public class OfyTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
ofy().delete().entity(someObject);
ofy().save().entity(someObject);
}
() -> {
ofy().delete().entity(someObject);
ofy().save().entity(someObject);
}));
assertThat(thrown).hasMessageThat().contains("Multiple entries with same key");
}
@ -193,15 +173,7 @@ public class OfyTest {
public void testSavingKeyTwiceInOneCall() {
assertThrows(
IllegalArgumentException.class,
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
ofy().save().entities(someObject, someObject);
}
}));
() -> ofy().transact(() -> ofy().save().entities(someObject, someObject)));
}
/** Simple entity class with lifecycle callbacks. */
@ -241,11 +213,7 @@ public class OfyTest {
public void testLifecycleCallbacks_loadFromDatastore() {
ofy().factory().register(LifecycleObject.class);
final LifecycleObject object = new LifecycleObject();
ofy().transact(new VoidWork() {
@Override
public void vrun() {
ofy().save().entity(object).now();
}});
ofy().transact(() -> ofy().save().entity(object).now());
assertThat(object.onSaveCalled).isTrue();
ofy().clearSessionCache();
assertThat(ofy().load().entity(object).now().onLoadCalled).isTrue();

View file

@ -22,7 +22,6 @@ import static google.registry.model.rde.RdeRevision.saveRevision;
import static google.registry.testing.JUnitBackports.assertThrows;
import com.google.common.base.VerifyException;
import com.googlecode.objectify.VoidWork;
import google.registry.testing.AppEngineRule;
import org.joda.time.DateTime;
import org.junit.Rule;
@ -51,17 +50,12 @@ public class RdeRevisionTest {
@Test
public void testSaveRevision_objectDoesntExist_newRevisionIsZero_nextRevIsOne() {
ofy().transact(new VoidWork() {
@Override
public void vrun() {
saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 0);
}});
ofy().transact(new VoidWork() {
@Override
public void vrun() {
assertThat(getNextRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL))
.isEqualTo(1);
}});
ofy().transact(() -> saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 0));
ofy()
.transact(
() ->
assertThat(getNextRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL))
.isEqualTo(1));
}
@Test
@ -72,12 +66,8 @@ public class RdeRevisionTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 1);
}
}));
() ->
saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 1)));
assertThat(thrown).hasMessageThat().contains("object missing");
}
@ -90,29 +80,19 @@ public class RdeRevisionTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0);
}
}));
() -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0)));
assertThat(thrown).hasMessageThat().contains("object already created");
}
@Test
public void testSaveRevision_objectExistsAtZero_newRevisionIsOne_nextRevIsTwo() {
save("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0);
ofy().transact(new VoidWork() {
@Override
public void vrun() {
saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 1);
}});
ofy().transact(new VoidWork() {
@Override
public void vrun() {
assertThat(getNextRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL))
.isEqualTo(2);
}});
ofy().transact(() -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 1));
ofy()
.transact(
() ->
assertThat(getNextRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL))
.isEqualTo(2));
}
@Test
@ -124,12 +104,7 @@ public class RdeRevisionTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 2);
}
}));
() -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 2)));
assertThat(thrown).hasMessageThat().contains("should be at 1 ");
}
@ -141,12 +116,8 @@ public class RdeRevisionTest {
() ->
ofy()
.transact(
new VoidWork() {
@Override
public void vrun() {
saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, -1);
}
}));
() ->
saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, -1)));
assertThat(thrown).hasMessageThat().contains("Negative revision");
}

View file

@ -33,7 +33,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.VoidWork;
import google.registry.model.EntityTestCase;
import google.registry.model.common.EntityGroupRoot;
import google.registry.model.registrar.Registrar.State;
@ -418,15 +417,16 @@ public class RegistrarTest extends EntityTestCase {
@Test
public void testLoadByClientIdCached_isTransactionless() {
ofy().transact(new VoidWork() {
@Override
public void vrun() {
assertThat(Registrar.loadByClientIdCached("registrar")).isPresent();
// Load something as a control to make sure we are seeing loaded keys in the session cache.
ofy().load().entity(abuseAdminContact).now();
assertThat(ofy().getSessionKeys()).contains(Key.create(abuseAdminContact));
assertThat(ofy().getSessionKeys()).doesNotContain(Key.create(registrar));
}});
ofy()
.transact(
() -> {
assertThat(Registrar.loadByClientIdCached("registrar")).isPresent();
// Load something as a control to make sure we are seeing loaded keys in the session
// cache.
ofy().load().entity(abuseAdminContact).now();
assertThat(ofy().getSessionKeys()).contains(Key.create(abuseAdminContact));
assertThat(ofy().getSessionKeys()).doesNotContain(Key.create(registrar));
});
ofy().clearSessionCache();
// Conversely, loads outside of a transaction should end up in the session cache.
assertThat(Registrar.loadByClientIdCached("registrar")).isPresent();

View file

@ -41,7 +41,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.VoidWork;
import google.registry.dns.writer.VoidDnsWriter;
import google.registry.model.pricing.StaticPremiumListPricingEngine;
import google.registry.model.registry.Registry;
@ -193,18 +192,14 @@ public class PremiumListUtilsTest {
// Remove one of the premium list entries from behind the Bloom filter's back.
ofy()
.transactNew(
new VoidWork() {
@Override
public void vrun() {
() ->
ofy()
.delete()
.keys(
Key.create(
PremiumList.getCached("tld").get().getRevisionKey(),
PremiumListEntry.class,
"rich"));
}
});
"rich")));
ofy().clearSessionCache();
assertThat(getPremiumPrice("rich", Registry.get("tld"))).isEmpty();