mirror of
https://github.com/google/nomulus.git
synced 2025-05-15 08:57:12 +02:00
Rename BillingEvent.OneTime.cancellationTargetId
Per comments in [] ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123000109
This commit is contained in:
parent
91cf36c5b9
commit
3abb29adf8
2 changed files with 37 additions and 25 deletions
|
@ -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<? extends BillingEvent> 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<? extends BillingEvent> 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<? extends BillingEvent> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue