Add ReservedList to CloudSQL in unit tests (#992)

* Add ReservedList to CloudSQL in unit tests

* Remove unnecessary changes

* Change databasehelper to use DualDatabaseDao
This commit is contained in:
sarahcaseybot 2021-03-10 14:16:39 -05:00 committed by GitHub
parent e5801e1b60
commit 79b4cb0d82
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 81 additions and 39 deletions

View file

@ -33,6 +33,7 @@ import static org.joda.money.CurrencyUnit.EUR;
import static org.joda.money.CurrencyUnit.USD;
import static org.junit.jupiter.api.Assertions.assertThrows;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedMap;
import com.googlecode.objectify.Key;
@ -135,9 +136,23 @@ public class RegistryTest extends EntityTestCase {
@TestOfyAndSql
void testSetReservedList_doesntMutateExistingRegistry() {
ReservedList rl15 =
persistReservedList("tld-reserved15", "potato,FULLY_BLOCKED", "phone,FULLY_BLOCKED");
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved15")
.setReservedListMapFromLines(
ImmutableList.of("potato,FULLY_BLOCKED", "phone,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
ReservedList rl16 =
persistReservedList("tld-reserved16", "port,FULLY_BLOCKED", "manteau,FULLY_BLOCKED");
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved16")
.setReservedListMapFromLines(
ImmutableList.of("port,FULLY_BLOCKED", "manteau,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
Registry registry1 =
newRegistry("propter", "PROPTER")
.asBuilder()
@ -173,9 +188,23 @@ public class RegistryTest extends EntityTestCase {
@TestOfyAndSql
void testSetReservedLists() {
ReservedList rl5 =
persistReservedList("tld-reserved5", "lol,FULLY_BLOCKED", "cat,FULLY_BLOCKED");
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved5")
.setReservedListMapFromLines(
ImmutableList.of("potato,FULLY_BLOCKED", "phone,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
ReservedList rl6 =
persistReservedList("tld-reserved6", "hammock,FULLY_BLOCKED", "mouse,FULLY_BLOCKED");
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved6")
.setReservedListMapFromLines(
ImmutableList.of("port,FULLY_BLOCKED", "manteau,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
Registry r =
Registry.get("tld").asBuilder().setReservedLists(ImmutableSet.of(rl5, rl6)).build();
assertThat(r.getReservedLists().stream().map(Key::getName))
@ -186,15 +215,29 @@ public class RegistryTest extends EntityTestCase {
@TestOfyAndSql
void testSetReservedListsByName() {
persistReservedList("tld-reserved24", "lol,FULLY_BLOCKED", "cat,FULLY_BLOCKED");
persistReservedList("tld-reserved25", "mit,FULLY_BLOCKED", "tim,FULLY_BLOCKED");
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved15")
.setReservedListMapFromLines(
ImmutableList.of("potato,FULLY_BLOCKED", "phone,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
persistReservedList(
new ReservedList.Builder()
.setName("tld-reserved16")
.setReservedListMapFromLines(
ImmutableList.of("port,FULLY_BLOCKED", "manteau,FULLY_BLOCKED"))
.setShouldPublish(true)
.setLastUpdateTime(fakeClock.nowUtc())
.build());
Registry r =
Registry.get("tld")
.asBuilder()
.setReservedListsByName(ImmutableSet.of("tld-reserved24", "tld-reserved25"))
.setReservedListsByName(ImmutableSet.of("tld-reserved15", "tld-reserved16"))
.build();
assertThat(r.getReservedLists().stream().map(Key::getName))
.containsExactly("tld-reserved24", "tld-reserved25");
.containsExactly("tld-reserved15", "tld-reserved16");
r = Registry.get("tld").asBuilder().setReservedListsByName(ImmutableSet.of()).build();
assertThat(r.getReservedLists()).isEmpty();
}

View file

@ -105,6 +105,7 @@ import google.registry.model.registry.label.PremiumList.PremiumListEntry;
import google.registry.model.registry.label.PremiumList.PremiumListRevision;
import google.registry.model.registry.label.PremiumListDualDao;
import google.registry.model.registry.label.ReservedList;
import google.registry.model.registry.label.ReservedListDualDatabaseDao;
import google.registry.model.reporting.HistoryEntry;
import google.registry.model.transfer.ContactTransferData;
import google.registry.model.transfer.DomainTransferData;
@ -345,6 +346,13 @@ public class DatabaseHelper {
return persistReservedList(listName, true, lines);
}
public static ReservedList persistReservedList(ReservedList reservedList) {
ReservedListDualDatabaseDao.save(reservedList);
maybeAdvanceClock();
tm().clearSessionCache();
return reservedList;
}
public static ReservedList persistReservedList(
String listName, boolean shouldPublish, String... lines) {
ReservedList reservedList =
@ -354,13 +362,7 @@ public class DatabaseHelper {
.setShouldPublish(shouldPublish)
.setLastUpdateTime(DateTime.now(DateTimeZone.UTC))
.build();
return tm().isOfy()
? persistResource(reservedList)
: tm().transact(
() -> {
tm().insert(reservedList);
return reservedList;
});
return persistReservedList(reservedList);
}
/**

View file

@ -17,7 +17,7 @@ package google.registry.tools;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static google.registry.model.registry.label.ReservationType.FULLY_BLOCKED;
import static google.registry.testing.DatabaseHelper.persistResource;
import static google.registry.testing.DatabaseHelper.persistReservedList;
import static google.registry.util.DateTimeUtils.START_OF_TIME;
import static org.junit.jupiter.api.Assertions.assertThrows;
@ -35,11 +35,11 @@ class UpdateReservedListCommandTest
@BeforeEach
void beforeEach() {
populateInitialReservedListInDatastore(true);
populateInitialReservedListInDatabase(true);
}
private void populateInitialReservedListInDatastore(boolean shouldPublish) {
persistResource(
private void populateInitialReservedListInDatabase(boolean shouldPublish) {
persistReservedList(
new ReservedList.Builder()
.setName("xn--q9jyb4c_common-reserved")
.setReservedListMapFromLines(ImmutableList.of("helicopter,FULLY_BLOCKED"))
@ -89,7 +89,7 @@ class UpdateReservedListCommandTest
@Test
void testSuccess_shouldPublish_doesntOverrideFalseIfNotSpecified() throws Exception {
populateInitialReservedListInDatastore(false);
populateInitialReservedListInDatabase(false);
runCommandForced("--input=" + reservedTermsPath);
assertThat(ReservedList.get("xn--q9jyb4c_common-reserved")).isPresent();
ReservedList reservedList = ReservedList.get("xn--q9jyb4c_common-reserved").get();