mirror of
https://github.com/google/nomulus.git
synced 2025-07-08 20:23:24 +02:00
Generate sql schema for PollMessage (#582)
* Generate sql schema for PollMessage * Rework columns and resolve comments * Fix datastore schema
This commit is contained in:
parent
b42ded9451
commit
b1241b98b2
12 changed files with 424 additions and 16 deletions
|
@ -16,24 +16,31 @@ package google.registry.model.poll;
|
|||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
|
||||
import static google.registry.testing.DatastoreHelper.createTld;
|
||||
import static google.registry.testing.DatastoreHelper.persistActiveDomain;
|
||||
import static google.registry.testing.DatastoreHelper.persistResource;
|
||||
import static google.registry.testing.SqlHelper.saveRegistrar;
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import google.registry.model.EntityTestCase;
|
||||
import google.registry.model.domain.Period;
|
||||
import google.registry.model.eppcommon.Trid;
|
||||
import google.registry.model.reporting.HistoryEntry;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import google.registry.persistence.VKey;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/** Unit tests for {@link PollMessage}. */
|
||||
public class PollMessageTest extends EntityTestCase {
|
||||
|
||||
HistoryEntry historyEntry;
|
||||
|
||||
@Before
|
||||
public PollMessageTest() {
|
||||
super(true);
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
createTld("foobar");
|
||||
historyEntry =
|
||||
|
@ -52,6 +59,50 @@ public class PollMessageTest extends EntityTestCase {
|
|||
.build());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCloudSqlPersistenceOneTime() {
|
||||
saveRegistrar("TheRegistrar");
|
||||
PollMessage.OneTime pollMessage =
|
||||
new PollMessage.OneTime.Builder()
|
||||
.setClientId("TheRegistrar")
|
||||
.setEventTime(fakeClock.nowUtc())
|
||||
.setMsg("Test poll message")
|
||||
.setParent(historyEntry)
|
||||
.build();
|
||||
pollMessage.id = null;
|
||||
jpaTm().transact(() -> jpaTm().saveNew(pollMessage));
|
||||
PollMessage.OneTime persisted =
|
||||
jpaTm()
|
||||
.transact(
|
||||
() -> jpaTm().load(VKey.createSql(PollMessage.OneTime.class, pollMessage.id)));
|
||||
persisted.id = pollMessage.id;
|
||||
persisted.parent = pollMessage.parent;
|
||||
assertThat(persisted).isEqualTo(pollMessage);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCloudSqlPersistenceAutorenew() {
|
||||
saveRegistrar("TheRegistrar");
|
||||
PollMessage.Autorenew pollMessage =
|
||||
new PollMessage.Autorenew.Builder()
|
||||
.setClientId("TheRegistrar")
|
||||
.setEventTime(fakeClock.nowUtc())
|
||||
.setMsg("Test poll message")
|
||||
.setParent(historyEntry)
|
||||
.setAutorenewEndTime(fakeClock.nowUtc().plusDays(365))
|
||||
.setTargetId("foobar.foo")
|
||||
.build();
|
||||
pollMessage.id = null;
|
||||
jpaTm().transact(() -> jpaTm().saveNew(pollMessage));
|
||||
PollMessage.Autorenew persisted =
|
||||
jpaTm()
|
||||
.transact(
|
||||
() -> jpaTm().load(VKey.createSql(PollMessage.Autorenew.class, pollMessage.id)));
|
||||
persisted.id = pollMessage.id;
|
||||
persisted.parent = pollMessage.parent;
|
||||
assertThat(persisted).isEqualTo(pollMessage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPersistenceOneTime() {
|
||||
PollMessage.OneTime pollMessage =
|
||||
|
|
|
@ -28,6 +28,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
import javax.persistence.DiscriminatorValue;
|
||||
import javax.persistence.Entity;
|
||||
import org.junit.rules.ExternalResource;
|
||||
|
||||
|
@ -46,6 +47,7 @@ public class JpaEntityCoverage extends ExternalResource {
|
|||
PersistenceXmlUtility.getManagedClasses().stream()
|
||||
.filter(e -> !IGNORE_ENTITIES.contains(e.getSimpleName()))
|
||||
.filter(e -> e.isAnnotationPresent(Entity.class))
|
||||
.filter(e -> !e.isAnnotationPresent(DiscriminatorValue.class))
|
||||
.collect(ImmutableSet.toImmutableSet());
|
||||
private static final Set<Class> allCoveredJpaEntities = Sets.newHashSet();
|
||||
// Map of test class name to boolean flag indicating if it tests any JPA entities.
|
||||
|
|
|
@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assert_;
|
|||
import google.registry.model.billing.BillingEventTest;
|
||||
import google.registry.model.contact.ContactResourceTest;
|
||||
import google.registry.model.domain.DomainBaseSqlTest;
|
||||
import google.registry.model.poll.PollMessageTest;
|
||||
import google.registry.model.registry.RegistryLockDaoTest;
|
||||
import google.registry.persistence.transaction.JpaEntityCoverage;
|
||||
import google.registry.schema.cursor.CursorDaoTest;
|
||||
|
@ -75,6 +76,7 @@ import org.junit.runner.RunWith;
|
|||
CursorDaoTest.class,
|
||||
DomainBaseSqlTest.class,
|
||||
LockDaoTest.class,
|
||||
PollMessageTest.class,
|
||||
PremiumListDaoTest.class,
|
||||
RegistrarDaoTest.class,
|
||||
RegistryLockDaoTest.class,
|
||||
|
|
|
@ -373,14 +373,14 @@ class google.registry.model.poll.PendingActionNotificationResponse$NameOrId {
|
|||
java.lang.String value;
|
||||
}
|
||||
class google.registry.model.poll.PollMessage {
|
||||
@Id long id;
|
||||
@Id java.lang.Long id;
|
||||
@Parent com.googlecode.objectify.Key<google.registry.model.reporting.HistoryEntry> parent;
|
||||
java.lang.String clientId;
|
||||
java.lang.String msg;
|
||||
org.joda.time.DateTime eventTime;
|
||||
}
|
||||
class google.registry.model.poll.PollMessage$Autorenew {
|
||||
@Id long id;
|
||||
@Id java.lang.Long id;
|
||||
@Parent com.googlecode.objectify.Key<google.registry.model.reporting.HistoryEntry> parent;
|
||||
java.lang.String clientId;
|
||||
java.lang.String msg;
|
||||
|
@ -389,7 +389,7 @@ class google.registry.model.poll.PollMessage$Autorenew {
|
|||
org.joda.time.DateTime eventTime;
|
||||
}
|
||||
class google.registry.model.poll.PollMessage$OneTime {
|
||||
@Id long id;
|
||||
@Id java.lang.Long id;
|
||||
@Parent com.googlecode.objectify.Key<google.registry.model.reporting.HistoryEntry> parent;
|
||||
java.lang.String clientId;
|
||||
java.lang.String msg;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue