Details
diff --git a/account/src/main/java/org/killbill/billing/account/api/DefaultAccount.java b/account/src/main/java/org/killbill/billing/account/api/DefaultAccount.java
index b367197..8b21c4e 100644
--- a/account/src/main/java/org/killbill/billing/account/api/DefaultAccount.java
+++ b/account/src/main/java/org/killbill/billing/account/api/DefaultAccount.java
@@ -138,7 +138,7 @@ public class DefaultAccount extends EntityBase implements Account {
this.firstNameLength = firstNameLength;
this.currency = currency;
this.parentAccountId = parentAccountId;
- this.isPaymentDelegatedToParent = isPaymentDelegatedToParent != null ? isPaymentDelegatedToParent : false;
+ this.isPaymentDelegatedToParent = isPaymentDelegatedToParent;
this.billCycleDayLocal = billCycleDayLocal == null ? DEFAULT_BILLING_CYCLE_DAY_LOCAL : billCycleDayLocal;
this.paymentMethodId = paymentMethodId;
this.timeZone = timeZone;
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
index f9342ac..ca3a662 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
@@ -244,7 +244,7 @@ public class TestIntegrationInvoice extends TestIntegrationBase {
final BigDecimal accountBalance1 = invoiceUserApi.getAccountBalance(account.getId(), callContext);
assertTrue(accountBalance1.compareTo(new BigDecimal("249.95")) == 0);
- busHandler.pushExpectedEvents(NextEvent.INVOICE_ADJUSTMENT);
+ busHandler.pushExpectedEvents();
invoiceUserApi.insertCredit(account.getId(), new BigDecimal("300"), new LocalDate(clock.getUTCNow(), account.getTimeZone()), account.getCurrency(), callContext);
assertListenerStatus();
@@ -310,23 +310,25 @@ public class TestIntegrationInvoice extends TestIntegrationBase {
final List<InvoiceItem> invoiceItemList = new ArrayList<InvoiceItem>();
ExternalChargeInvoiceItem item = new ExternalChargeInvoiceItem(null, account.getId(), subscription.getBundleId(), "", date, BigDecimal.TEN, account.getCurrency());
invoiceItemList.add(item);
+ busHandler.pushExpectedEvents();
final List<InvoiceItem> draftInvoiceItems = invoiceUserApi.insertExternalCharges(account.getId(), date, invoiceItemList, callContext);
+ assertListenerStatus();
// add expected invoice
- final List<ExpectedInvoiceItemCheck> expectedDrafInvoices = new ArrayList<ExpectedInvoiceItemCheck>();
- expectedDrafInvoices.add(new ExpectedInvoiceItemCheck(InvoiceItemType.EXTERNAL_CHARGE, BigDecimal.TEN));
+ final List<ExpectedInvoiceItemCheck> expectedDraftInvoices = new ArrayList<ExpectedInvoiceItemCheck>();
+ expectedDraftInvoices.add(new ExpectedInvoiceItemCheck(InvoiceItemType.EXTERNAL_CHARGE, BigDecimal.TEN));
- // Move through time and verify we get the same invoice
- busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.PAYMENT, NextEvent.INVOICE_ADJUSTMENT);
+ // Move through time and verify invoices
+ busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.PAYMENT);
clock.addMonths(1);
assertListenerStatus();
invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), callContext);
- invoiceChecker.checkInvoice(invoices.get(2).getId(), callContext, expectedDrafInvoices);
+ invoiceChecker.checkInvoice(invoices.get(2).getId(), callContext, expectedDraftInvoices);
invoiceChecker.checkInvoice(invoices.get(3).getId(), callContext, expectedInvoices);
busHandler.pushExpectedEvents(NextEvent.INVOICE, NextEvent.PAYMENT);
- invoiceUserApi.invoiceStatusTransition(account.getId(), draftInvoiceItems.get(0).getInvoiceId(), callContext);
+ invoiceUserApi.commitInvoice(draftInvoiceItems.get(0).getInvoiceId(), callContext);
assertListenerStatus();
final List<Payment> accountPayments = paymentApi.getAccountPayments(account.getId(), false, null, callContext);
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestInvoicePayment.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestInvoicePayment.java
index 13a3a43..44004bb 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestInvoicePayment.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestInvoicePayment.java
@@ -56,7 +56,7 @@ public class TestInvoicePayment extends TestIntegrationBase {
clock.setDay(new LocalDate(2012, 4, 1));
- busHandler.pushExpectedEvents(NextEvent.INVOICE_ADJUSTMENT);
+ busHandler.pushExpectedEvents();
final InvoiceItem externalCharge = new ExternalChargeInvoiceItem(null, account.getId(), null, "Initial external charge", clock.getUTCToday(), BigDecimal.TEN, Currency.USD);
final InvoiceItem item1 = invoiceUserApi.insertExternalCharges(account.getId(), clock.getUTCToday(), ImmutableList.<InvoiceItem>of(externalCharge), callContext).get(0);
assertListenerStatus();
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java b/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
index b15fdab..99562a6 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
@@ -495,16 +495,18 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
}
@Override
- public void invoiceStatusTransition(final UUID accountId, final UUID invoiceId, final CallContext context) throws InvoiceApiException {
- final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(accountId, context);
- dao.changeInvoiceStatus(accountId, invoiceId, InvoiceStatus.COMMITTED, internalCallContext);
+ public void commitInvoice(final UUID invoiceId, final CallContext context) throws InvoiceApiException {
+ final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(context);
+ dao.changeInvoiceStatus(invoiceId, InvoiceStatus.COMMITTED, internalCallContext);
final Invoice invoice = this.getInvoice(invoiceId, context);
+ final Long accountRecordId = internalCallContextFactory.getRecordIdFromObject(invoice.getAccountId(), ObjectType.ACCOUNT, context);
// notify invoice creation event
final DefaultInvoiceCreationEvent defaultInvoiceCreationEvent = new DefaultInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(),
invoice.getBalance(), invoice.getCurrency(),
- internalCallContext.getAccountRecordId(), internalCallContext.getTenantRecordId(), context.getUserToken());
- postEvent(defaultInvoiceCreationEvent, accountId, internalCallContext);
+ accountRecordId, internalCallContext.getTenantRecordId(),
+ context.getUserToken());
+ postEvent(defaultInvoiceCreationEvent, invoice.getAccountId(), internalCallContext);
}
private void postEvent(final BusInternalEvent event, final UUID accountId, final InternalCallContext context) {
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
index 5ffb146..efba88a 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/DefaultInvoiceDao.java
@@ -295,9 +295,11 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
if (madeChanges) {
cbaDao.addCBAComplexityFromTransaction(invoiceModelDao.getId(), entitySqlDaoWrapperFactory, context);
- // Notify the bus since the balance of the invoice changed
- // TODO should we post an InvoiceCreationInternalEvent event instead? Note! This will trigger a payment (see InvoiceHandler)
- notifyBusOfInvoiceAdjustment(entitySqlDaoWrapperFactory, invoiceModelDao.getId(), invoiceModelDao.getAccountId(), context.getUserToken(), context);
+ if (InvoiceStatus.COMMITTED.equals(invoiceModelDao.getStatus())) {
+ // Notify the bus since the balance of the invoice changed (only if the invoice is COMMITTED)
+ // TODO should we post an InvoiceCreationInternalEvent event instead? Note! This will trigger a payment (see InvoiceHandler)
+ notifyBusOfInvoiceAdjustment(entitySqlDaoWrapperFactory, invoiceModelDao.getId(), invoiceModelDao.getAccountId(), context.getUserToken(), context);
+ }
}
}
@@ -856,7 +858,7 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
}
@Override
- public void changeInvoiceStatus(final UUID accountId, final UUID invoiceId, final InvoiceStatus newStatus,
+ public void changeInvoiceStatus(final UUID invoiceId, final InvoiceStatus newStatus,
final InternalCallContext context) throws InvoiceApiException {
transactionalSqlDao.execute(InvoiceApiException.class, new EntitySqlDaoTransactionWrapper<Void>() {
@Override
@@ -865,7 +867,8 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
// Retrieve the invoice and make sure it belongs to the right account
final InvoiceModelDao invoice = transactional.getById(invoiceId.toString(), context);
- if (invoice == null || !invoice.getAccountId().equals(accountId)) {
+
+ if (invoice == null ) {
throw new InvoiceApiException(ErrorCode.INVOICE_NOT_FOUND, invoiceId);
}
@@ -873,12 +876,7 @@ public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, I
throw new InvoiceApiException(ErrorCode.INVOICE_INVALID_STATUS, newStatus, invoiceId, invoice.getStatus());
}
- transactional.updateStatus(invoiceId.toString(), accountId.toString(), newStatus.toString(), context);
-
- if (InvoiceStatus.COMMITTED.equals(newStatus)) {
- // now notify on the bus
- //notifyOfFutureBillingEvents(entitySqlDaoWrapperFactory, invoice.getAccountId(), callbackDateTimePerSubscriptions, context);
- }
+ transactional.updateStatus(invoiceId.toString(), newStatus.toString(), context);
return null;
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
index 1c18499..7798545 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDao.java
@@ -141,13 +141,12 @@ public interface InvoiceDao extends EntityDao<InvoiceModelDao, Invoice, InvoiceA
public void consumeExstingCBAOnAccountWithUnpaidInvoices(final UUID accountId, final InternalCallContext context);
/**
- * Update invoice state
+ * Update invoice status
*
- * @param accountId the account id
* @param invoiceId the invoice id
* @param newState the new invoice state
* @param context the tenant context
* @throws InvoiceApiException
*/
- void changeInvoiceStatus(UUID accountId, UUID invoiceId, InvoiceStatus newState, InternalCallContext context) throws InvoiceApiException;
+ void changeInvoiceStatus(UUID invoiceId, InvoiceStatus newState, InternalCallContext context) throws InvoiceApiException;
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceSqlDao.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceSqlDao.java
index 15d7354..ffecc24 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceSqlDao.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceSqlDao.java
@@ -45,7 +45,6 @@ public interface InvoiceSqlDao extends EntitySqlDao<InvoiceModelDao, Invoice> {
@SqlUpdate
@Audited(ChangeType.UPDATE)
public void updateStatus(@Bind("id") String invoiceId,
- @Bind("accountId") String accountId,
@Bind("status") String status,
@BindBean final InternalCallContext context);
}
diff --git a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoiceSqlDao.sql.stg b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoiceSqlDao.sql.stg
index 0cd6e79..5fe6558 100644
--- a/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoiceSqlDao.sql.stg
+++ b/invoice/src/main/resources/org/killbill/billing/invoice/dao/InvoiceSqlDao.sql.stg
@@ -57,6 +57,5 @@ updateStatus() ::= <<
UPDATE <tableName()>
SET status = :status
WHERE id = :id
- AND account_id = :accountId
<AND_CHECK_TENANT()>;
>>
\ No newline at end of file
diff --git a/invoice/src/main/resources/org/killbill/billing/invoice/ddl.sql b/invoice/src/main/resources/org/killbill/billing/invoice/ddl.sql
index 39e567e..b81af02 100644
--- a/invoice/src/main/resources/org/killbill/billing/invoice/ddl.sql
+++ b/invoice/src/main/resources/org/killbill/billing/invoice/ddl.sql
@@ -40,7 +40,7 @@ CREATE TABLE invoices (
invoice_date date NOT NULL,
target_date date NOT NULL,
currency varchar(3) NOT NULL,
- status varchar(15) NOT NULL,
+ status varchar(15) NOT NULL DEFAULT 'COMMITTED',
migrated bool NOT NULL,
created_by varchar(50) NOT NULL,
created_date datetime NOT NULL,
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
index 4161dd0..8465a40 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
@@ -388,7 +388,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
Assert.assertEquals(creditInvoiceItem.getInvoiceId(), creditInvoice.getId());
// move invoice from DRAFT to COMMITTED
- invoiceUserApi.invoiceStatusTransition(this.accountId, creditInvoice.getId(), callContext);
+ invoiceUserApi.commitInvoice(creditInvoice.getId(), callContext);
creditInvoice = invoiceUserApi.getInvoice(invoiceId, callContext);
Assert.assertEquals(creditInvoice.getStatus(), InvoiceStatus.COMMITTED);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
index 39b4913..d3a841c 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/dao/MockInvoiceDao.java
@@ -364,7 +364,7 @@ public class MockInvoiceDao extends MockEntityDaoBase<InvoiceModelDao, Invoice,
}
@Override
- public void changeInvoiceStatus(final UUID accountId, final UUID invoiceId, final InvoiceStatus newState, final InternalCallContext context) throws InvoiceApiException {
+ public void changeInvoiceStatus(final UUID invoiceId, final InvoiceStatus newState, final InternalCallContext context) throws InvoiceApiException {
throw new UnsupportedOperationException();
}
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index 4aea81f..9b4214e 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -43,6 +43,7 @@ import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@@ -941,28 +942,22 @@ public class InvoiceResource extends JaxRsResourceBase {
}
@TimedResource
- @POST
- @Path("/{invoiceId:" + UUID_PATTERN + "}/" + ACCOUNTS + "/{accountId:" + UUID_PATTERN + "}/" + INVOICE_STATUS_TRANSITION)
+ @PUT
+ @Path("/{invoiceId:" + UUID_PATTERN + "}/" + COMMIT_INVOICE)
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Perform the invoice status transition from DRAFT to COMMITTED")
- @ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id or invoice id supplied"),
- @ApiResponse(code = 404, message = "Invoice not found")})
- public Response invoiceStatusTransition(@PathParam("accountId") final String accountIdString,
- @PathParam("invoiceId") final String invoiceIdString,
- @HeaderParam(HDR_CREATED_BY) final String createdBy,
- @HeaderParam(HDR_REASON) final String reason,
- @HeaderParam(HDR_COMMENT) final String comment,
- @javax.ws.rs.core.Context final HttpServletRequest request,
- @javax.ws.rs.core.Context final UriInfo uriInfo) throws InvoiceApiException {
+ @ApiResponses(value = {@ApiResponse(code = 404, message = "Invoice not found")})
+ public Response commitInvoice(@PathParam("invoiceId") final String invoiceIdString,
+ @HeaderParam(HDR_CREATED_BY) final String createdBy,
+ @HeaderParam(HDR_REASON) final String reason,
+ @HeaderParam(HDR_COMMENT) final String comment,
+ @javax.ws.rs.core.Context final HttpServletRequest request,
+ @javax.ws.rs.core.Context final UriInfo uriInfo) throws InvoiceApiException {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
-
- final UUID accountId = UUID.fromString(accountIdString);
final UUID invoiceId = UUID.fromString(invoiceIdString);
-
- invoiceApi.invoiceStatusTransition(accountId, invoiceId, callContext);
-
+ invoiceApi.commitInvoice(invoiceId, callContext);
return Response.status(Response.Status.OK).build();
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxrsResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxrsResource.java
index 92f1ac8..8a0dc17 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxrsResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxrsResource.java
@@ -236,7 +236,7 @@ public interface JaxrsResource {
public static final String INVOICE_MP_TEMPLATE = "manualPayTemplate";
public static final String INVOICE_TRANSLATION = "translation";
public static final String INVOICE_CATALOG_TRANSLATION = "catalogTranslation";
- public static final String INVOICE_STATUS_TRANSITION = "statusTransition";
+ public static final String COMMIT_INVOICE = "commitInvoice";
public static final String COMBO = "combo";
diff --git a/payment/src/main/java/org/killbill/billing/payment/bus/PaymentBusEventHandler.java b/payment/src/main/java/org/killbill/billing/payment/bus/PaymentBusEventHandler.java
index 1e07ea9..492951f 100644
--- a/payment/src/main/java/org/killbill/billing/payment/bus/PaymentBusEventHandler.java
+++ b/payment/src/main/java/org/killbill/billing/payment/bus/PaymentBusEventHandler.java
@@ -115,7 +115,7 @@ public class PaymentBusEventHandler {
properties, paymentControlPluginNames, callContext, internalContext);
} catch (final AccountApiException e) {
log.error("Failed to process invoice payment", e);
- } catch (InvoiceApiException e) {
+ } catch (final InvoiceApiException e) {
log.error("Failed to process invoice payment", e);
} catch (final PaymentApiException e) {
// Log as error unless:
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
index e61057a..5b498cf 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/KillbillClient.java
@@ -173,7 +173,7 @@ public abstract class KillbillClient extends GuicyKillbillTestSuiteWithEmbeddedD
final String phone = "81 53 26 56";
// Note: the accountId payload is ignored on account creation
- return new Account(accountId, name, length, externalKey, email, null, currency, null, null, null, timeZone,
+ return new Account(accountId, name, length, externalKey, email, null, currency, null, false, null, timeZone,
address1, address2, postalCode, company, city, state, country, locale, phone, false, false, null, null);
}
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
index d76a3e7..bcefd3f 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
@@ -30,7 +30,6 @@ import org.joda.time.LocalDate;
import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.catalog.api.ProductCategory;
-import org.killbill.billing.client.KillBillClientException;
import org.killbill.billing.client.model.Account;
import org.killbill.billing.client.model.AuditLog;
import org.killbill.billing.client.model.Credit;
@@ -573,57 +572,11 @@ public class TestInvoice extends TestJaxrsBase {
Invoice invoice = killBillClient.getInvoice(creditJson.getInvoiceId());
Assert.assertEquals(invoice.getStatus(), InvoiceStatus.DRAFT.toString());
- killBillClient.invoiceStatusTransition(account.getAccountId(), invoice.getInvoiceId(), createdBy, reason, comment);
+ killBillClient.commitInvoice(invoice.getInvoiceId(), createdBy, reason, comment);
invoice = killBillClient.getInvoice(creditJson.getInvoiceId());
Assert.assertEquals(invoice.getStatus(), InvoiceStatus.COMMITTED.toString());
}
- @Test(groups = "slow", description = "Forcing method to fail.", expectedExceptions = KillBillClientException.class,
- expectedExceptionsMessageRegExp = ".* type=ACCOUNT doesn't exist!")
- public void testMoveInvoiceStatusWithInvalidIds() throws Exception {
-
- killBillClient.invoiceStatusTransition(UUID.randomUUID(), UUID.randomUUID(), createdBy, reason, comment);
-
- }
-
- /*
- @Test(groups = "slow", description = "Forcing method to fail.", expectedExceptions = KillBillClientException.class,
- expectedExceptionsMessageRegExp = ".* type=ACCOUNT doesn't exist!")
- public void testErrorTransition() throws Exception {
-
- final Account account = createAccountNoPMBundleAndSubscriptionAndWaitForFirstInvoice();
- final Invoice invoice = killBillClient.getInvoicesForAccount(account.getAccountId()).get(0);
- Assert.assertEquals(invoice.getStatus(), InvoiceStatus.COMMITTED.toString());
-
- killBillClient.invoiceStatusTransition(account.getAccountId(), invoice.getInvoiceId(), createdBy, reason, comment);
-
- }
- */
-
- /*
- @Test(groups = "slow", description = "Forcing method to fail.", expectedExceptions = KillBillClientException.class,
- expectedExceptionsMessageRegExp = "No invoice could be found .*")
- public void testMoveInvoiceStatusWithInvalidAccount() throws Exception {
-
- final Account account = createAccountWithDefaultPaymentMethod();
- final Account otherAccount = createAccountWithDefaultPaymentMethod();
-
- final DateTime effectiveDate = clock.getUTCNow();
- final BigDecimal creditAmount = BigDecimal.TEN;
- final Credit credit = new Credit();
- credit.setAccountId(account.getAccountId());
- credit.setInvoiceId(null);
- credit.setCreditAmount(creditAmount);
- final Credit creditJson = killBillClient.createCredit(credit, createdBy, reason, comment);
-
- Invoice invoice = killBillClient.getInvoice(creditJson.getInvoiceId());
- Assert.assertEquals(invoice.getStatus(), InvoiceStatus.DRAFT.toString());
-
- killBillClient.invoiceStatusTransition(otherAccount.getAccountId(), invoice.getInvoiceId(), createdBy, reason, comment);
-
- }
- */
-
}