Add TransactionRecord to HistoryEntry for transaction reporting

This change adds the persisted data model necessary to facilitate transaction
reporting. TransactionRecord is an embedded repeated class within HistoryEntry
which is only added to when a HistoryEntry is created that counts towards
transaction reporting.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=165619552
This commit is contained in:
larryruili 2017-08-17 13:18:24 -07:00 committed by Ben McIlwain
parent 46f175e078
commit bf383081ce
4 changed files with 260 additions and 14 deletions

View file

@ -16,14 +16,17 @@ package google.registry.model.reporting;
import static com.google.common.truth.Truth.assertThat;
import static google.registry.model.ofy.ObjectifyService.ofy;
import static google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount.TransactionReportField.NET_ADDS_1_YR;
import static google.registry.testing.DatastoreHelper.createTld;
import static google.registry.testing.DatastoreHelper.newDomainResource;
import static google.registry.testing.DatastoreHelper.persistResource;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.collect.ImmutableSet;
import google.registry.model.EntityTestCase;
import google.registry.model.domain.Period;
import google.registry.model.eppcommon.Trid;
import google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount;
import org.junit.Before;
import org.junit.Test;
@ -35,22 +38,30 @@ public class HistoryEntryTest extends EntityTestCase {
@Before
public void setUp() throws Exception {
createTld("foobar");
DomainTransactionRecord transactionRecord =
new DomainTransactionRecord.Builder()
.setTld("foobar")
.setReportingTime(clock.nowUtc())
.setTransactionFieldAmounts(
ImmutableSet.of(TransactionFieldAmount.create(NET_ADDS_1_YR, 1)))
.build();
// Set up a new persisted HistoryEntry entity.
historyEntry = new HistoryEntry.Builder()
.setParent(newDomainResource("foo.foobar"))
.setType(HistoryEntry.Type.DOMAIN_CREATE)
.setPeriod(Period.create(1, Period.Unit.YEARS))
.setXmlBytes("<xml></xml>".getBytes(UTF_8))
.setModificationTime(clock.nowUtc())
.setClientId("foo")
.setOtherClientId("otherClient")
.setTrid(Trid.create("ABC-123", "server-trid"))
.setBySuperuser(false)
.setReason("reason")
.setRequestedByRegistrar(false)
.build();
historyEntry =
new HistoryEntry.Builder()
.setParent(newDomainResource("foo.foobar"))
.setType(HistoryEntry.Type.DOMAIN_CREATE)
.setPeriod(Period.create(1, Period.Unit.YEARS))
.setXmlBytes("<xml></xml>".getBytes(UTF_8))
.setModificationTime(clock.nowUtc())
.setClientId("foo")
.setOtherClientId("otherClient")
.setTrid(Trid.create("ABC-123", "server-trid"))
.setBySuperuser(false)
.setReason("reason")
.setRequestedByRegistrar(false)
.setDomainTransactionRecord(transactionRecord)
.build();
persistResource(historyEntry);
}
@Test