Details
diff --git a/api/src/main/java/com/ning/billing/util/tag/ControlTag.java b/api/src/main/java/com/ning/billing/util/tag/ControlTag.java
index a933cff..3ae9eb5 100644
--- a/api/src/main/java/com/ning/billing/util/tag/ControlTag.java
+++ b/api/src/main/java/com/ning/billing/util/tag/ControlTag.java
@@ -16,7 +16,6 @@
package com.ning.billing.util.tag;
-import com.ning.billing.account.api.ControlTagType;
public interface ControlTag extends Tag {
public ControlTagType getControlTagType();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
index ff60d06..23561a1 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
@@ -94,7 +94,8 @@ public class TestDefaultInvoiceMigrationApi {
private UUID accountId ;
private UUID subscriptionId ;
- private DateTime now;
+ private DateTime date_migrated;
+ private DateTime date_regular;
private UUID migrationInvoiceId;
private UUID regularInvoiceId;
@@ -110,7 +111,8 @@ public class TestDefaultInvoiceMigrationApi {
log.info("Starting set up");
accountId = UUID.randomUUID();
subscriptionId = UUID.randomUUID();
- now = new ClockMock().getUTCNow();
+ date_migrated = new ClockMock().getUTCNow().minusYears(1);
+ date_regular = new ClockMock().getUTCNow();
final String invoiceDdl = IOUtils.toString(TestInvoiceDispatcher.class.getResourceAsStream("/com/ning/billing/invoice/ddl.sql"));
final String utilDdl = IOUtils.toString(TestInvoiceDispatcher.class.getResourceAsStream("/com/ning/billing/util/ddl.sql"));
@@ -137,7 +139,7 @@ public class TestDefaultInvoiceMigrationApi {
}
private UUID createAndCheckMigrationInvoice(){
- UUID migrationInvoiceId = migrationApi.createMigrationInvoice(accountId, now, MIGRATION_INVOICE_AMOUNT, MIGRATION_INVOICE_CURRENCY);
+ UUID migrationInvoiceId = migrationApi.createMigrationInvoice(accountId, date_migrated, MIGRATION_INVOICE_AMOUNT, MIGRATION_INVOICE_CURRENCY);
Assert.assertNotNull(migrationInvoiceId);
//Double check it was created and values are correct
@@ -145,7 +147,7 @@ public class TestDefaultInvoiceMigrationApi {
Assert.assertNotNull(invoice);
Assert.assertEquals(invoice.getAccountId(), accountId);
- Assert.assertEquals(invoice.getTargetDate().compareTo(now), 0); //temp to avoid tz test artifact
+ Assert.assertEquals(invoice.getTargetDate().compareTo(date_migrated), 0); //temp to avoid tz test artifact
// Assert.assertEquals(invoice.getTargetDate(),now);
Assert.assertEquals(invoice.getNumberOfItems(), 1);
Assert.assertEquals(invoice.getInvoiceItems().get(0).getAmount().compareTo(MIGRATION_INVOICE_AMOUNT), 0 );
@@ -178,17 +180,15 @@ public class TestDefaultInvoiceMigrationApi {
EntitlementBillingApi entitlementBillingApi = BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementBillingApi.class);
((ZombieControl)entitlementBillingApi).addResult("getBillingEventsForAccount", events);
- DateTime target = new DateTime();
-
InvoiceDispatcher dispatcher = new InvoiceDispatcher(generator, accountUserApi, entitlementBillingApi, invoiceDao, locker);
- Invoice invoice = dispatcher.processAccount(accountId, target, true);
+ Invoice invoice = dispatcher.processAccount(accountId, date_regular, true);
Assert.assertNotNull(invoice);
List<Invoice> invoices = invoiceDao.getInvoicesByAccount(accountId);
Assert.assertEquals(invoices.size(),0);
- invoice = dispatcher.processAccount(accountId, target, false);
+ invoice = dispatcher.processAccount(accountId, date_regular, false);
Assert.assertNotNull(invoice);
invoices = invoiceDao.getInvoicesByAccount(accountId);
@@ -204,13 +204,13 @@ public class TestDefaultInvoiceMigrationApi {
Assert.assertEquals(byAccount.size(),1);
Assert.assertEquals(byAccount.get(0).getId(), regularInvoiceId);
- List<Invoice> byAccountAndDate = invoiceUserApi.getInvoicesByAccount(accountId, now.minusDays(1));
+ List<Invoice> byAccountAndDate = invoiceUserApi.getInvoicesByAccount(accountId, date_migrated.minusDays(1));
Assert.assertEquals(byAccountAndDate.size(),1);
Assert.assertEquals(byAccountAndDate.get(0).getId(), regularInvoiceId);
- Collection<Invoice> unpaid = invoiceUserApi.getUnpaidInvoicesByAccountId(accountId, now.plusDays(1));
- Assert.assertEquals(unpaid.size(),1);
- Assert.assertEquals(unpaid.iterator().next().getId(), regularInvoiceId);
+ Collection<Invoice> unpaid = invoiceUserApi.getUnpaidInvoicesByAccountId(accountId, date_regular.plusDays(1));
+ Assert.assertEquals(unpaid.size(), 1);
+ Assert.assertEquals(regularInvoiceId, unpaid.iterator().next().getId());
}
diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index 5d7daca..63bc87e 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -188,6 +188,14 @@ public class DefaultPaymentApi implements PaymentApi {
UUID.fromString(invoiceId)));
processedPaymentsOrErrors.add(result);
}
+ else if (invoice.isMigrationInvoice()) {
+ log.info("Received invoice for payment that is a migration invoice - don't know how to handle those yet: {}", invoice);
+ Either<PaymentError, PaymentInfo> result = Either.left(new PaymentError("migration invoice",
+ "Invoice balance was a migration invoice",
+ account.getId(),
+ UUID.fromString(invoiceId)));
+ processedPaymentsOrErrors.add(result);
+ }
else {
PaymentAttempt paymentAttempt = paymentDao.createPaymentAttempt(invoice);
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
index baaf9cd..dddb14f 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/DefaultTagDefinitionDao.java
@@ -21,9 +21,9 @@ import java.util.List;
import org.skife.jdbi.v2.IDBI;
import com.google.inject.Inject;
import com.ning.billing.ErrorCode;
-import com.ning.billing.account.api.ControlTagType;
import com.ning.billing.util.api.TagDefinitionApiException;
import com.ning.billing.util.clock.Clock;
+import com.ning.billing.util.tag.ControlTagType;
import com.ning.billing.util.tag.DefaultTagDefinition;
import com.ning.billing.util.tag.Tag;
import com.ning.billing.util.tag.TagDefinition;
diff --git a/util/src/main/java/com/ning/billing/util/tag/dao/TagMapper.java b/util/src/main/java/com/ning/billing/util/tag/dao/TagMapper.java
index fadf98c..4e3804f 100644
--- a/util/src/main/java/com/ning/billing/util/tag/dao/TagMapper.java
+++ b/util/src/main/java/com/ning/billing/util/tag/dao/TagMapper.java
@@ -22,7 +22,8 @@ import java.util.UUID;
import org.joda.time.DateTime;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
-import com.ning.billing.account.api.ControlTagType;
+
+import com.ning.billing.util.tag.ControlTagType;
import com.ning.billing.util.tag.DefaultControlTag;
import com.ning.billing.util.tag.DefaultTagDefinition;
import com.ning.billing.util.tag.DescriptiveTag;
diff --git a/util/src/main/java/com/ning/billing/util/tag/DefaultControlTag.java b/util/src/main/java/com/ning/billing/util/tag/DefaultControlTag.java
index 707526d..588beb7 100644
--- a/util/src/main/java/com/ning/billing/util/tag/DefaultControlTag.java
+++ b/util/src/main/java/com/ning/billing/util/tag/DefaultControlTag.java
@@ -18,7 +18,6 @@ package com.ning.billing.util.tag;
import java.util.UUID;
import org.joda.time.DateTime;
-import com.ning.billing.account.api.ControlTagType;
public class DefaultControlTag extends DescriptiveTag implements ControlTag {
private final ControlTagType controlTagType;
diff --git a/util/src/main/java/com/ning/billing/util/tag/DefaultTagStore.java b/util/src/main/java/com/ning/billing/util/tag/DefaultTagStore.java
index 2fd8144..eace017 100644
--- a/util/src/main/java/com/ning/billing/util/tag/DefaultTagStore.java
+++ b/util/src/main/java/com/ning/billing/util/tag/DefaultTagStore.java
@@ -17,7 +17,6 @@
package com.ning.billing.util.tag;
import java.util.UUID;
-import com.ning.billing.account.api.ControlTagType;
import com.ning.billing.util.entity.EntityCollectionBase;
public class DefaultTagStore extends EntityCollectionBase<Tag> implements TagStore {
@@ -39,7 +38,7 @@ public class DefaultTagStore extends EntityCollectionBase<Tag> implements TagSto
for (Tag tag : entities.values()) {
if (tag instanceof ControlTag) {
ControlTag controlTag = (ControlTag) tag;
- if (controlTag.getControlTagType() == ControlTagType.AUTO_BILLING_OFF) {
+ if (controlTag.getControlTagType() == ControlTagType.AUTO_PAY_OFF) {
return false;
}
}
diff --git a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
index 727a7cc..0952388 100644
--- a/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
+++ b/util/src/test/java/com/ning/billing/util/tag/TestTagStore.java
@@ -30,11 +30,11 @@ import org.slf4j.LoggerFactory;
import org.testng.annotations.Guice;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+
import com.google.inject.Inject;
-import com.ning.billing.account.api.ControlTagType;
import com.ning.billing.dbi.MysqlTestingHelper;
+
import com.ning.billing.util.api.TagDefinitionApiException;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.tag.dao.TagDefinitionDao;
@@ -248,7 +248,7 @@ public class TestTagStore {
assertEquals(tagStore.generateInvoice(), false);
assertEquals(tagStore.processPayment(), true);
- ControlTag paymentTag = new DefaultControlTag("testUser", clock.getUTCNow(), ControlTagType.AUTO_BILLING_OFF);
+ ControlTag paymentTag = new DefaultControlTag("testUser", clock.getUTCNow(), ControlTagType.AUTO_PAY_OFF);
tagStore.add(paymentTag);
assertEquals(tagStore.generateInvoice(), false);
assertEquals(tagStore.processPayment(), false);
@@ -256,7 +256,7 @@ public class TestTagStore {
@Test(expectedExceptions = TagDefinitionApiException.class)
public void testTagDefinitionCreationWithControlTagName() throws TagDefinitionApiException {
- String definitionName = ControlTagType.AUTO_BILLING_OFF.toString();
+ String definitionName = ControlTagType.AUTO_PAY_OFF.toString();
tagDefinitionDao.create(definitionName, "This should break", "test");
}