killbill-memoizeit

jaxrs: Fix non deterministic behavior in Account#closeAccount

7/24/2018 3:07:29 PM

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
index 2b96656..8e6df2e 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
@@ -420,7 +420,9 @@ public class AccountResource extends JaxRsResourceBase {
                                  @HeaderParam(HDR_REASON) final String reason,
                                  @HeaderParam(HDR_COMMENT) final String comment,
                                  @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, AccountApiException, EntitlementApiException, InvoiceApiException, TagApiException {
+
         final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
+        tagUserApi.addTag(accountId, ObjectType.ACCOUNT, ControlTagType.AUTO_INVOICING_OFF.getId(), callContext);
 
         if (cancelAllSubscriptions) {
             final List<SubscriptionBundle> bundles = subscriptionApi.getSubscriptionBundlesForAccountId(accountId, callContext);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
index f164cef..f524d3d 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
@@ -511,7 +511,8 @@ public class TestEntitlement extends TestJaxrsBase {
         clock.addDays(1);
         callbackServlet.assertListenerStatus();
 
-        callbackServlet.pushExpectedEvents(ExtBusEventType.ENTITLEMENT_CANCEL,
+        callbackServlet.pushExpectedEvents(ExtBusEventType.TAG_CREATION,
+                                           ExtBusEventType.ENTITLEMENT_CANCEL,
                                            ExtBusEventType.ENTITLEMENT_CANCEL,
                                            ExtBusEventType.ENTITLEMENT_CANCEL,
                                            ExtBusEventType.ENTITLEMENT_CANCEL,
@@ -529,8 +530,6 @@ public class TestEntitlement extends TestJaxrsBase {
                                            ExtBusEventType.SUBSCRIPTION_CANCEL,
                                            ExtBusEventType.SUBSCRIPTION_CANCEL,
                                            ExtBusEventType.SUBSCRIPTION_CANCEL,
-                                           ExtBusEventType.INVOICE_CREATION,
-                                           ExtBusEventType.INVOICE_PAYMENT_FAILED,
                                            ExtBusEventType.INVOICE_ADJUSTMENT,
                                            ExtBusEventType.INVOICE_ADJUSTMENT,
                                            ExtBusEventType.INVOICE_ADJUSTMENT,
@@ -548,7 +547,7 @@ public class TestEntitlement extends TestJaxrsBase {
         }
 
         final List<Invoice> invoicesAfterClose = accountApi.getInvoicesForAccount(accountJson.getAccountId(), null, true, false, false, false, AuditLevel.NONE, requestOptions);
-        assertEquals(invoicesAfterClose.size(), 2);
+        assertEquals(invoicesAfterClose.size(), 1);
         assertEquals(invoicesAfterClose.get(0).getBalance().compareTo(BigDecimal.ZERO), 0);
         assertEquals(invoiceApi.getInvoiceTags(invoicesAfterClose.get(0).getInvoiceId(), requestOptions).size(), 0);
     }