mirror of
https://github.com/google/nomulus.git
synced 2025-07-09 12:43:24 +02:00
Add a test to verify JPA supports polimorphic VKey (#642)
This commit is contained in:
parent
ec09226baa
commit
e7db9b3c1a
2 changed files with 46 additions and 28 deletions
|
@ -109,7 +109,6 @@ public abstract class TransferData<
|
||||||
public B copyConstantFieldsToBuilder() {
|
public B copyConstantFieldsToBuilder() {
|
||||||
B newBuilder = new TypeInstantiator<B>(getClass()) {}.instantiate();
|
B newBuilder = new TypeInstantiator<B>(getClass()) {}.instantiate();
|
||||||
newBuilder
|
newBuilder
|
||||||
// .setTransferPeriod(this.transferPeriod)
|
|
||||||
.setTransferRequestTrid(this.transferRequestTrid)
|
.setTransferRequestTrid(this.transferRequestTrid)
|
||||||
.setTransferRequestTime(this.transferRequestTime)
|
.setTransferRequestTime(this.transferRequestTime)
|
||||||
.setGainingClientId(this.gainingClientId)
|
.setGainingClientId(this.gainingClientId)
|
||||||
|
|
|
@ -35,6 +35,8 @@ import org.junit.jupiter.api.Test;
|
||||||
public class PollMessageTest extends EntityTestCase {
|
public class PollMessageTest extends EntityTestCase {
|
||||||
|
|
||||||
HistoryEntry historyEntry;
|
HistoryEntry historyEntry;
|
||||||
|
PollMessage.OneTime oneTime;
|
||||||
|
PollMessage.Autorenew autoRenew;
|
||||||
|
|
||||||
public PollMessageTest() {
|
public PollMessageTest() {
|
||||||
super(true);
|
super(true);
|
||||||
|
@ -57,33 +59,14 @@ public class PollMessageTest extends EntityTestCase {
|
||||||
.setReason("reason")
|
.setReason("reason")
|
||||||
.setRequestedByRegistrar(false)
|
.setRequestedByRegistrar(false)
|
||||||
.build());
|
.build());
|
||||||
}
|
oneTime =
|
||||||
|
|
||||||
@Test
|
|
||||||
void testCloudSqlPersistenceOneTime() {
|
|
||||||
saveRegistrar("TheRegistrar");
|
|
||||||
PollMessage.OneTime pollMessage =
|
|
||||||
new PollMessage.OneTime.Builder()
|
new PollMessage.OneTime.Builder()
|
||||||
.setClientId("TheRegistrar")
|
.setClientId("TheRegistrar")
|
||||||
.setEventTime(fakeClock.nowUtc())
|
.setEventTime(fakeClock.nowUtc())
|
||||||
.setMsg("Test poll message")
|
.setMsg("Test poll message")
|
||||||
.setParent(historyEntry)
|
.setParent(historyEntry)
|
||||||
.build();
|
.build();
|
||||||
pollMessage.id = null;
|
autoRenew =
|
||||||
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()
|
new PollMessage.Autorenew.Builder()
|
||||||
.setClientId("TheRegistrar")
|
.setClientId("TheRegistrar")
|
||||||
.setEventTime(fakeClock.nowUtc())
|
.setEventTime(fakeClock.nowUtc())
|
||||||
|
@ -92,15 +75,51 @@ public class PollMessageTest extends EntityTestCase {
|
||||||
.setAutorenewEndTime(fakeClock.nowUtc().plusDays(365))
|
.setAutorenewEndTime(fakeClock.nowUtc().plusDays(365))
|
||||||
.setTargetId("foobar.foo")
|
.setTargetId("foobar.foo")
|
||||||
.build();
|
.build();
|
||||||
pollMessage.id = null;
|
// TODO(shicong): Remove these two lines after we use symmetric vkey and change the cloud sql
|
||||||
jpaTm().transact(() -> jpaTm().saveNew(pollMessage));
|
// schema
|
||||||
|
oneTime.id = null;
|
||||||
|
autoRenew.id = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testCloudSqlPersistenceOneTime() {
|
||||||
|
saveRegistrar("TheRegistrar");
|
||||||
|
jpaTm().transact(() -> jpaTm().saveNew(oneTime));
|
||||||
|
PollMessage.OneTime persisted =
|
||||||
|
jpaTm().transact(() -> jpaTm().load(VKey.createSql(PollMessage.OneTime.class, oneTime.id)));
|
||||||
|
persisted.parent = oneTime.parent;
|
||||||
|
assertThat(persisted).isEqualTo(oneTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testCloudSqlPersistenceAutorenew() {
|
||||||
|
saveRegistrar("TheRegistrar");
|
||||||
|
jpaTm().transact(() -> jpaTm().saveNew(autoRenew));
|
||||||
PollMessage.Autorenew persisted =
|
PollMessage.Autorenew persisted =
|
||||||
jpaTm()
|
jpaTm()
|
||||||
.transact(
|
.transact(
|
||||||
() -> jpaTm().load(VKey.createSql(PollMessage.Autorenew.class, pollMessage.id)));
|
() -> jpaTm().load(VKey.createSql(PollMessage.Autorenew.class, autoRenew.id)));
|
||||||
persisted.id = pollMessage.id;
|
persisted.parent = autoRenew.parent;
|
||||||
persisted.parent = pollMessage.parent;
|
assertThat(persisted).isEqualTo(autoRenew);
|
||||||
assertThat(persisted).isEqualTo(pollMessage);
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testCloudSqlSupportForPolymorphicVKey() {
|
||||||
|
saveRegistrar("TheRegistrar");
|
||||||
|
|
||||||
|
jpaTm().transact(() -> jpaTm().saveNew(oneTime));
|
||||||
|
PollMessage persistedOneTime =
|
||||||
|
jpaTm().transact(() -> jpaTm().load(VKey.createSql(PollMessage.class, oneTime.getId())));
|
||||||
|
assertThat(persistedOneTime).isInstanceOf(PollMessage.OneTime.class);
|
||||||
|
persistedOneTime.parent = oneTime.parent;
|
||||||
|
assertThat(persistedOneTime).isEqualTo(oneTime);
|
||||||
|
|
||||||
|
jpaTm().transact(() -> jpaTm().saveNew(autoRenew));
|
||||||
|
PollMessage persistedAutoRenew =
|
||||||
|
jpaTm().transact(() -> jpaTm().load(VKey.createSql(PollMessage.class, autoRenew.getId())));
|
||||||
|
assertThat(persistedAutoRenew).isInstanceOf(PollMessage.Autorenew.class);
|
||||||
|
persistedAutoRenew.parent = oneTime.parent;
|
||||||
|
assertThat(persistedAutoRenew).isEqualTo(autoRenew);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue