From 3abb29adf85159e21381439dc466b4653d5ae9ee Mon Sep 17 00:00:00 2001 From: ctingue Date: Mon, 23 May 2016 08:36:16 -0700 Subject: [PATCH] Rename BillingEvent.OneTime.cancellationTargetId Per comments in [] ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123000109 --- .../registry/model/billing/BillingEvent.java | 20 +++++---- .../model/billing/BillingEventTest.java | 42 ++++++++++++------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/java/google/registry/model/billing/BillingEvent.java b/java/google/registry/model/billing/BillingEvent.java index fefa43598..ffe88765b 100644 --- a/java/google/registry/model/billing/BillingEvent.java +++ b/java/google/registry/model/billing/BillingEvent.java @@ -226,11 +226,11 @@ public abstract class BillingEvent extends ImmutableObject DateTime syntheticCreationTime; /** - * For {@link Flag#SYNTHETIC} events, the {@link BillingEvent} from which this OneTime was - * created. This is needed in order to properly match billing events against + * For {@link Flag#SYNTHETIC} events, a {@link Key} to the {@link BillingEvent} from which this + * OneTime was created. This is needed in order to properly match billing events against * {@link Cancellation}s. */ - Long cancellationTargetId; + Key cancellationMatchingBillingEvent; public Money getCost() { return cost; @@ -248,8 +248,8 @@ public abstract class BillingEvent extends ImmutableObject return syntheticCreationTime; } - public Long getCancellationTargetId() { - return cancellationTargetId; + public Key getCancellationMatchingBillingEvent() { + return cancellationMatchingBillingEvent; } @Override @@ -288,8 +288,9 @@ public abstract class BillingEvent extends ImmutableObject return this; } - public Builder setCancellationTargetId(Long cancellationTargetId) { - getInstance().cancellationTargetId = cancellationTargetId; + public Builder setCancellationMatchingBillingEvent( + Key cancellationMatchingBillingEvent) { + getInstance().cancellationMatchingBillingEvent = cancellationMatchingBillingEvent; return this; } @@ -310,8 +311,9 @@ public abstract class BillingEvent extends ImmutableObject "Synthetic creation time must be set if and only if the SYNTHETIC flag is set."); checkState( instance.getFlags().contains(Flag.SYNTHETIC) - == (instance.cancellationTargetId != null), - "Cancellation target ID must be set if and only if the SYNTHETIC flag is set."); + == (instance.cancellationMatchingBillingEvent != null), + "Cancellation matching billing event must be set if and only if the SYNTHETIC flag " + + "is set."); return super.build(); } } diff --git a/javatests/google/registry/model/billing/BillingEventTest.java b/javatests/google/registry/model/billing/BillingEventTest.java index abfb5a9fa..81d51ed55 100644 --- a/javatests/google/registry/model/billing/BillingEventTest.java +++ b/javatests/google/registry/model/billing/BillingEventTest.java @@ -85,17 +85,6 @@ public class BillingEventTest extends EntityTestCase { .setCost(Money.of(USD, 1)) .setEventTime(now) .setBillingTime(now.plusDays(5)))); - oneTimeSynthetic = persistResource(commonInit( - new BillingEvent.OneTime.Builder() - .setParent(historyEntry) - .setReason(Reason.CREATE) - .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT, BillingEvent.Flag.SYNTHETIC)) - .setSyntheticCreationTime(now.plusDays(10)) - .setCancellationTargetId(1L) - .setPeriodYears(2) - .setCost(Money.of(USD, 1)) - .setEventTime(now) - .setBillingTime(now.plusDays(5)))); recurring = persistResource(commonInit( new BillingEvent.Recurring.Builder() .setParent(historyEntry) @@ -103,6 +92,17 @@ public class BillingEventTest extends EntityTestCase { .setReason(Reason.RENEW) .setEventTime(now.plusYears(1)) .setRecurrenceEndTime(END_OF_TIME))); + oneTimeSynthetic = persistResource(commonInit( + new BillingEvent.OneTime.Builder() + .setParent(historyEntry) + .setReason(Reason.CREATE) + .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT, BillingEvent.Flag.SYNTHETIC)) + .setSyntheticCreationTime(now.plusDays(10)) + .setCancellationMatchingBillingEvent(Key.create(recurring)) + .setPeriodYears(2) + .setCost(Money.of(USD, 1)) + .setEventTime(now) + .setBillingTime(now.plusDays(5)))); cancellationOneTime = persistResource(commonInit( new BillingEvent.Cancellation.Builder() .setParent(historyEntry2) @@ -137,6 +137,7 @@ public class BillingEventTest extends EntityTestCase { @Test public void testPersistence() throws Exception { assertThat(ofy().load().entity(oneTime).now()).isEqualTo(oneTime); + assertThat(ofy().load().entity(oneTimeSynthetic).now()).isEqualTo(oneTimeSynthetic); assertThat(ofy().load().entity(recurring).now()).isEqualTo(recurring); assertThat(ofy().load().entity(cancellationOneTime).now()).isEqualTo(cancellationOneTime); assertThat(ofy().load().entity(cancellationRecurring).now()).isEqualTo(cancellationRecurring); @@ -165,6 +166,13 @@ public class BillingEventTest extends EntityTestCase { .containsExactly(modification); } + @Test + public void testCancellationMatching() throws Exception { + Key recurringKey = ofy().load().entity(oneTimeSynthetic).now() + .getCancellationMatchingBillingEvent(); + assertThat(ofy().load().key(recurringKey).now()).isEqualTo(recurring); + } + @Test public void testIndexing() throws Exception { verifyIndexing(oneTime, "clientId", "eventTime", "billingTime", "syntheticCreationTime"); @@ -183,6 +191,7 @@ public class BillingEventTest extends EntityTestCase { "Synthetic creation time must be set if and only if the SYNTHETIC flag is set."); oneTime.asBuilder() .setFlags(ImmutableSet.of(BillingEvent.Flag.SYNTHETIC)) + .setCancellationMatchingBillingEvent(Key.create(recurring)) .build(); } @@ -197,22 +206,23 @@ public class BillingEventTest extends EntityTestCase { } @Test - public void testFailure_syntheticFlagWithoutCancellationTargetId() { + public void testFailure_syntheticFlagWithoutCancellationMatchingKey() { thrown.expect( IllegalStateException.class, - "Synthetic creation time must be set if and only if the SYNTHETIC flag is set."); + "Cancellation matching billing event must be set if and only if the SYNTHETIC flag is set"); oneTime.asBuilder() .setFlags(ImmutableSet.of(BillingEvent.Flag.SYNTHETIC)) + .setSyntheticCreationTime(END_OF_TIME) .build(); } @Test - public void testFailure_cancellationTargetIdWithoutFlag() { + public void testFailure_cancellationMatchingKeyWithoutFlag() { thrown.expect( IllegalStateException.class, - "Cancellation target ID must be set if and only if the SYNTHETIC flag is set"); + "Cancellation matching billing event must be set if and only if the SYNTHETIC flag is set"); oneTime.asBuilder() - .setCancellationTargetId(2L) + .setCancellationMatchingBillingEvent(Key.create(recurring)) .build(); }