killbill-uncached

Fixed after merge from master

1/10/2012 10:18:24 PM

Details

diff --git a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
index 8a4fd1f..2aef1ab 100644
--- a/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
+++ b/account/src/test/java/com/ning/billing/account/api/MockAccountUserApi.java
@@ -23,6 +23,8 @@ import java.util.UUID;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.util.customfield.CustomField;
+import com.ning.billing.util.tag.Tag;
 
 public class MockAccountUserApi implements AccountUserApi {
     private final CopyOnWriteArrayList<Account> accounts = new CopyOnWriteArrayList<Account>();
@@ -43,7 +45,7 @@ public class MockAccountUserApi implements AccountUserApi {
     }
 
     @Override
-    public Account createAccount(AccountData data) {
+    public Account createAccount(AccountData data, List<CustomField> fields, List<Tag> tags) throws AccountApiException {
         Account result = new DefaultAccount(data);
         accounts.add(result);
         return result;
@@ -75,11 +77,6 @@ public class MockAccountUserApi implements AccountUserApi {
     }
 
     @Override
-    public void saveAccount(Account account) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
     public UUID getIdFromKey(String externalKey) {
         for (Account account : accounts) {
             if (externalKey.equals(account.getExternalKey())) {
@@ -88,4 +85,9 @@ public class MockAccountUserApi implements AccountUserApi {
         }
         return null;
     }
+
+    @Override
+    public void updateAccount(Account account) {
+        throw new UnsupportedOperationException();
+    }
 }
diff --git a/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java b/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
index 3a49474..a11818a 100644
--- a/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
+++ b/account/src/test/java/com/ning/billing/account/dao/MockAccountDao.java
@@ -28,7 +28,7 @@ public class MockAccountDao implements AccountDao {
     private final Map<String, Account> accounts = new ConcurrentHashMap<String, Account>();
 
     @Override
-    public void save(Account entity) {
+    public void create(Account entity) {
         accounts.put(entity.getId().toString(), entity);
     }
 
@@ -62,4 +62,9 @@ public class MockAccountDao implements AccountDao {
         return account == null ? null : account.getId();
     }
 
+    @Override
+    public void update(Account entity) {
+        accounts.put(entity.getId().toString(), entity);
+    }
+
 }
diff --git a/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java b/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
index f196379..c9b9e27 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/InvoicePaymentApi.java
@@ -23,7 +23,6 @@ import java.util.UUID;
 import org.joda.time.DateTime;
 
 import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.payment.api.InvoicePayment;
 
 public interface InvoicePaymentApi {
     public void paymentSuccessful(UUID invoiceId, BigDecimal amount, Currency currency, UUID paymentAttemptId, DateTime paymentAttemptDate);
@@ -34,5 +33,5 @@ public interface InvoicePaymentApi {
 
     public Invoice getInvoice(UUID invoiceId);
 
-    public InvoicePayment getInvoicePayment(UUID invoiceId, UUID paymentAttemptId);
+    public Invoice getInvoiceForPaymentAttemptId(UUID paymentAttemptId);
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
index a36cfea..c8879e8 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/api/invoice/DefaultInvoicePaymentApi.java
@@ -28,7 +28,6 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
 import com.ning.billing.invoice.dao.InvoiceDao;
-import com.ning.billing.payment.api.InvoicePayment;
 
 public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     private final InvoiceDao dao;
@@ -59,8 +58,9 @@ public class DefaultInvoicePaymentApi implements InvoicePaymentApi {
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(UUID invoiceId, UUID paymentAttemptId) {
-        throw new UnsupportedOperationException();
+    public Invoice getInvoiceForPaymentAttemptId(UUID paymentAttemptId) {
+        String invoiceIdStr = dao.getInvoiceIdByPaymentAttemptId(paymentAttemptId);
+        return dao.getById(invoiceIdStr);
     }
 
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 20f33c7..31b525d 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -16,24 +16,23 @@
 
 package com.ning.billing.invoice.dao;
 
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
 
-import com.google.inject.Inject;
-import com.ning.billing.invoice.api.Invoice;
-import com.ning.billing.invoice.api.InvoiceCreationNotification;
-import com.ning.billing.invoice.api.InvoiceItem;
-import com.ning.billing.invoice.api.user.DefaultInvoiceCreationNotification;
-import com.ning.billing.util.eventbus.EventBus;
 import org.skife.jdbi.v2.IDBI;
 import org.skife.jdbi.v2.Transaction;
 import org.skife.jdbi.v2.TransactionStatus;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import com.google.inject.Inject;
+import com.ning.billing.invoice.api.Invoice;
+import com.ning.billing.invoice.api.InvoiceCreationNotification;
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.user.DefaultInvoiceCreationNotification;
+import com.ning.billing.util.eventbus.EventBus;
 
 public class DefaultInvoiceDao implements InvoiceDao {
     private final InvoiceSqlDao invoiceDao;
@@ -151,4 +150,9 @@ public class DefaultInvoiceDao implements InvoiceDao {
     public void test() {
         invoiceDao.test();
     }
+
+    @Override
+    public String getInvoiceIdByPaymentAttemptId(UUID paymentAttemptId) {
+        return invoiceDao.getInvoiceIdByPaymentAttemptId(paymentAttemptId.toString());
+    }
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
index e9306b2..e80a17e 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceDao.java
@@ -20,6 +20,7 @@ import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+
 import com.ning.billing.invoice.api.Invoice;
 
 public interface InvoiceDao {
@@ -46,5 +47,8 @@ public interface InvoiceDao {
                              final String paymentId,
                              final Date paymentAttemptDate);
 
+    String getInvoiceIdByPaymentAttemptId(UUID paymentAttemptId);
+
     void test();
+
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
index 9ede145..f9553c9 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceSqlDao.java
@@ -16,12 +16,20 @@
 
 package com.ning.billing.invoice.dao;
 
-import com.ning.billing.catalog.api.Currency;
-import com.ning.billing.invoice.api.Invoice;
-import com.ning.billing.invoice.api.InvoiceItem;
-import com.ning.billing.invoice.model.DefaultInvoice;
-import com.ning.billing.util.UuidMapper;
-import com.ning.billing.util.entity.EntityDao;
+import java.lang.annotation.Annotation;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.math.BigDecimal;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
 import org.joda.time.DateTime;
 import org.skife.jdbi.v2.SQLStatement;
 import org.skife.jdbi.v2.StatementContext;
@@ -38,15 +46,12 @@ import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
 import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
 import org.skife.jdbi.v2.tweak.ResultSetMapper;
 
-import java.lang.annotation.*;
-import java.math.BigDecimal;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import com.ning.billing.catalog.api.Currency;
+import com.ning.billing.invoice.api.Invoice;
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.model.DefaultInvoice;
+import com.ning.billing.util.UuidMapper;
+import com.ning.billing.util.entity.EntityDao;
 
 @ExternalizedSqlViaStringTemplate3()
 @RegisterMapper({UuidMapper.class, InvoiceSqlDao.InvoiceMapper.class})
@@ -66,6 +71,9 @@ public interface InvoiceSqlDao extends EntityDao<Invoice>, Transactional<Invoice
     List<Invoice> getInvoicesBySubscription(@Bind("subscriptionId") final String subscriptionId);
 
     @SqlQuery
+    String getInvoiceIdByPaymentAttemptId(@Bind("paymentAttemptId") final String paymentAttemptId);
+
+    @SqlQuery
     List<UUID> getInvoicesForPayment(@Bind("targetDate") final Date targetDate,
                                      @Bind("numberOfDays") final int numberOfDays);
 
@@ -86,8 +94,10 @@ public interface InvoiceSqlDao extends EntityDao<Invoice>, Transactional<Invoice
     @Target({ElementType.PARAMETER})
     public @interface InvoiceBinder {
         public static class InvoiceBinderFactory implements BinderFactory {
+            @Override
             public Binder build(Annotation annotation) {
                 return new Binder<InvoiceBinder, Invoice>() {
+                    @Override
                     public void bind(SQLStatement q, InvoiceBinder bind, Invoice invoice) {
                         q.bind("id", invoice.getId().toString());
                         q.bind("accountId", invoice.getAccountId().toString());
@@ -122,5 +132,6 @@ public interface InvoiceSqlDao extends EntityDao<Invoice>, Transactional<Invoice
             return new DefaultInvoice(id, accountId, invoiceDate, targetDate, currency, lastPaymentAttempt, amountPaid, new ArrayList<InvoiceItem>());
         }
     }
+
 }
 
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
index 8766e18..12a5412 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceSqlDao.sql.stg
@@ -68,6 +68,13 @@ notifySuccessfulPayment() ::= <<
   VALUES(:invoiceId, :paymentId, :paymentDate, :amount, :currency);
 >>
 
+getInvoiceIdByPaymentAttemptId() ::= <<
+  SELECT i.id
+    FROM invoices i, invoice_payments ip
+   WHERE ip.invoice_id = i.id
+     AND ip.payment_attempt_id = :paymentAttemptId
+>>
+
 notifyFailedPayment() ::= <<
   INSERT INTO invoice_payments(invoice_id, payment_id, payment_date)
   VALUES(:invoiceId, :paymentId, :paymentAttemptDate);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
index 49ab67c..8a536a8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/MockInvoicePaymentApi.java
@@ -82,13 +82,18 @@ public class MockInvoicePaymentApi implements InvoicePaymentApi
     }
 
     @Override
-    public InvoicePayment getInvoicePayment(UUID invoiceId, UUID paymentAttemptId) {
+    public Invoice getInvoiceForPaymentAttemptId(UUID paymentAttemptId) {
         for (InvoicePayment existingInvoicePayment : invoicePayments) {
-            if (existingInvoicePayment.getInvoiceId().equals(invoiceId) && existingInvoicePayment.getPaymentAttemptId().equals(paymentAttemptId)) {
-                return existingInvoicePayment;
+            if (existingInvoicePayment.getPaymentAttemptId().equals(paymentAttemptId)) {
+                return getInvoice(existingInvoicePayment.getInvoiceId());
             }
         }
         return null;
     }
 
+    public InvoicePayment getInvoicePayment(UUID paymentAttemptId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
index 8570608..bf8b8c8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/MockInvoiceDao.java
@@ -33,30 +33,15 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoiceItem;
 import com.ning.billing.invoice.model.DefaultInvoice;
+import com.ning.billing.payment.api.InvoicePayment;
 
 public class MockInvoiceDao implements InvoiceDao {
-    private static final class InvoicePaymentInfo {
-        public final String invoiceId;
-        public final String paymentId;
-        public final DateTime paymentDate;
-        public final BigDecimal amount;
-        public final Currency currency;
-
-        public InvoicePaymentInfo(String invoiceId, String paymentId, DateTime paymentDate, BigDecimal amount, Currency currency) {
-            this.invoiceId = invoiceId;
-            this.paymentId = paymentId;
-            this.paymentDate = paymentDate;
-            this.amount = amount;
-            this.currency = currency;
-        }
-    }
-
     private final Object monitor = new Object();
     private final Map<String, Invoice> invoices = new LinkedHashMap<String, Invoice>();
-    private final List<InvoicePaymentInfo> paymentInfos = new ArrayList<MockInvoiceDao.InvoicePaymentInfo>();
+    private final Map<UUID, InvoicePayment> invoicePayments = new LinkedHashMap<UUID, InvoicePayment>();
 
     @Override
-    public void save(Invoice invoice) {
+    public void create(Invoice invoice) {
         synchronized (monitor) {
             invoices.put(invoice.getId().toString(), invoice);
         }
@@ -70,13 +55,13 @@ public class MockInvoiceDao implements InvoiceDao {
         DateTime lastPaymentDate = null;
         BigDecimal amountPaid = new BigDecimal("0");
 
-        for (InvoicePaymentInfo info : paymentInfos) {
-            if (info.invoiceId.equals(invoice.getId().toString())) {
-                if (lastPaymentDate == null || lastPaymentDate.isBefore(info.paymentDate)) {
-                    lastPaymentDate = info.paymentDate;
+        for (InvoicePayment invoicePayment : invoicePayments.values()) {
+            if (invoicePayment.getInvoiceId().equals(invoice.getId().toString())) {
+                if (lastPaymentDate == null || lastPaymentDate.isBefore(invoicePayment.getPaymentAttemptDate())) {
+                    lastPaymentDate = invoicePayment.getPaymentAttemptDate();
                 }
-                if (info.amount != null) {
-                    amountPaid.add(info.amount);
+                if (invoicePayment.getAmount() != null) {
+                    amountPaid.add(invoicePayment.getAmount());
                 }
             }
         }
@@ -148,14 +133,13 @@ public class MockInvoiceDao implements InvoiceDao {
         Set<UUID> result = new LinkedHashSet<UUID>();
 
         synchronized (monitor) {
-            for (InvoicePaymentInfo info : paymentInfos) {
-                Invoice invoice = invoices.get(info.invoiceId);
+            for (InvoicePayment invoicePayment : invoicePayments.values()) {
+                Invoice invoice = invoices.get(invoicePayment.getInvoiceId());
                 if ((invoice != null) &&
-                    (((info.paymentDate == null) || !info.paymentDate.plusDays(numberOfDays).isAfter(targetDate.getTime())) &&
+                    (((invoicePayment.getPaymentAttemptDate() == null) || !invoicePayment.getPaymentAttemptDate().plusDays(numberOfDays).isAfter(targetDate.getTime())) &&
                     (invoice.getTotalAmount() != null) && invoice.getTotalAmount().doubleValue() >= 0) &&
-                    ((info.amount == null) || info.amount.doubleValue() >= invoice.getTotalAmount().doubleValue())) {
-
-                    result.add(invoice.getId());
+                    ((invoicePayment.getAmount() == null) || invoicePayment.getAmount().doubleValue() >= invoice.getTotalAmount().doubleValue())) {
+                        result.add(invoice.getId());
                 }
             }
         }
@@ -164,24 +148,37 @@ public class MockInvoiceDao implements InvoiceDao {
     }
 
     @Override
-    public void notifySuccessfulPayment(String invoiceId,
-                                        BigDecimal paymentAmount,
-                                        String currency, String paymentId,
-                                        Date paymentDate) {
+    public void notifySuccessfulPayment(String invoiceId, BigDecimal paymentAmount, String currency, String paymentAttemptId, Date paymentAttemptDate) {
         synchronized (monitor) {
-            paymentInfos.add(new InvoicePaymentInfo(invoiceId, paymentId, new DateTime(paymentDate), paymentAmount, Currency.valueOf(currency)));
+            invoicePayments.put(UUID.fromString(paymentAttemptId),
+                                new InvoicePayment(UUID.fromString(invoiceId), paymentAmount, Currency.valueOf(currency), UUID.fromString(paymentAttemptId), new DateTime(paymentAttemptDate)));
         }
     }
 
     @Override
-    public void notifyFailedPayment(String invoiceId, String paymentId,
+    public void notifyFailedPayment(String invoiceId,
+                                    String paymentAttemptId,
                                     Date paymentAttemptDate) {
         synchronized (monitor) {
-            paymentInfos.add(new InvoicePaymentInfo(invoiceId, paymentId, new DateTime(paymentAttemptDate), null, null));
+            invoicePayments.put(UUID.fromString(paymentAttemptId),
+                                new InvoicePayment(UUID.fromString(invoiceId), null, null, UUID.fromString(paymentAttemptId), new DateTime(paymentAttemptDate)));
+
         }
     }
 
     @Override
     public void test() {
     }
+
+    @Override
+    public String getInvoiceIdByPaymentAttemptId(UUID paymentAttemptId) {
+        synchronized(monitor) {
+            for (InvoicePayment invoicePayment : invoicePayments.values()) {
+                if (paymentAttemptId.toString().equals(invoicePayment.getPaymentAttemptId())) {
+                    return invoicePayment.getInvoiceId().toString();
+                }
+            }
+        }
+        return null;
+    }
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/TestNotifyInvoicePaymentApi.java b/payment/src/test/java/com/ning/billing/payment/TestNotifyInvoicePaymentApi.java
index 0867f01..af319c5 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestNotifyInvoicePaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestNotifyInvoicePaymentApi.java
@@ -43,7 +43,7 @@ public class TestNotifyInvoicePaymentApi extends TestPaymentProvider {
                                      paymentAttempt.getPaymentAttemptId(),
                                      paymentAttempt.getPaymentAttemptDate());
 
-        InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(invoice.getId(), paymentAttempt.getPaymentAttemptId());
+        InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(paymentAttempt.getPaymentAttemptId());
 
         assertNotNull(invoicePayment);
     }
@@ -58,7 +58,7 @@ public class TestNotifyInvoicePaymentApi extends TestPaymentProvider {
                                  paymentAttempt.getPaymentAttemptId(),
                                  paymentAttempt.getPaymentAttemptDate());
 
-        InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(invoice.getId(), paymentAttempt.getPaymentAttemptId());
+        InvoicePayment invoicePayment = invoicePaymentApi.getInvoicePayment(paymentAttempt.getPaymentAttemptId());
 
         assertNotNull(invoicePayment);
     }
diff --git a/payment/src/test/java/com/ning/billing/payment/TestPaymentInvoiceIntegration.java b/payment/src/test/java/com/ning/billing/payment/TestPaymentInvoiceIntegration.java
index 8ccfefd..d9bc54e 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestPaymentInvoiceIntegration.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestPaymentInvoiceIntegration.java
@@ -88,11 +88,12 @@ public class TestPaymentInvoiceIntegration {
     @BeforeClass(alwaysRun = true)
     public void startMysql() throws IOException {
         final String accountddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/account/ddl.sql"));
+        final String utilddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/util/ddl.sql"));
         final String invoiceddl = IOUtils.toString(MysqlTestingHelper.class.getResourceAsStream("/com/ning/billing/invoice/ddl.sql"));
 
         helper = new MysqlTestingHelper();
         helper.startMysql();
-        helper.initDb(accountddl + "\n" + invoiceddl);
+        helper.initDb(accountddl + "\n" + invoiceddl + "\n" + utilddl);
         dbi = helper.getDBI();
     }
 
@@ -138,7 +139,7 @@ public class TestPaymentInvoiceIntegration {
                                                                      .currency(Currency.USD)
                                                                      .billingCycleDay(1)
                                                                      .build();
-        accountDao.save(account);
+        accountDao.create(account);
         return account;
     }
 
@@ -159,7 +160,7 @@ public class TestPaymentInvoiceIntegration {
                                                item.getRate(),
                                                item.getCurrency()));
         }
-        invoiceDao.save(invoice);
+        invoiceDao.create(invoice);
         return invoice;
     }
 
@@ -189,6 +190,6 @@ public class TestPaymentInvoiceIntegration {
         PaymentAttempt paymentAttempt = paymentApi.getPaymentAttemptForPaymentId(payments.get(0).getId());
         Assert.assertNotNull(paymentAttempt);
 
-        invoicePaymentApi.getInvoicePayment(invoice.getId(), paymentAttempt.getPaymentAttemptId());
+        Invoice invoiceForPayment = invoicePaymentApi.getInvoiceForPaymentAttemptId(paymentAttempt.getPaymentAttemptId());
     }
 }