killbill-memoizeit

payment: util: switch from BrainDeadProxyFactory to Mockito

7/7/2012 2:01:17 AM

Details

payment/pom.xml 5(+5 -0)

diff --git a/payment/pom.xml b/payment/pom.xml
index 7ba68ca..aad97d8 100644
--- a/payment/pom.xml
+++ b/payment/pom.xml
@@ -77,6 +77,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <scope>test</scope>
diff --git a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
index 6e33f2d..5c54e07 100644
--- a/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
+++ b/payment/src/test/java/com/ning/billing/payment/api/TestPaymentApi.java
@@ -38,7 +38,6 @@ import com.ning.billing.account.api.AccountUserApi;
 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.mock.BrainDeadProxyFactory;
 import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.mock.glue.MockClockModule;
 import com.ning.billing.mock.glue.MockJunctionModule;
@@ -138,8 +137,6 @@ public class TestPaymentApi {
     }
 
     private void testSimplePayment(final BigDecimal invoiceAmount, final BigDecimal requestedAmount, final BigDecimal expectedAmount) throws Exception {
-        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPayment", BrainDeadProxyFactory.ZOMBIE_VOID);
-
         final DateTime now = new DateTime(DateTimeZone.UTC);
         final Invoice invoice = testHelper.createTestInvoice(account, now, Currency.USD);
 
diff --git a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
index 4937184..1d2ed05 100644
--- a/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
+++ b/payment/src/test/java/com/ning/billing/payment/glue/PaymentTestModuleWithEmbeddedDb.java
@@ -17,15 +17,17 @@
 package com.ning.billing.payment.glue;
 
 import java.util.HashMap;
+import java.util.UUID;
+
+import org.mockito.Mockito;
 
 import com.google.inject.Provider;
 import com.ning.billing.config.PaymentConfig;
-import com.ning.billing.mock.BrainDeadProxyFactory;
-import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.payment.provider.MockPaymentProviderPluginModule;
 import com.ning.billing.util.api.TagUserApi;
 import com.ning.billing.util.bus.Bus;
 import com.ning.billing.util.bus.InMemoryBus;
+import com.ning.billing.util.dao.ObjectType;
 import com.ning.billing.util.glue.GlobalLockerModule;
 import com.ning.billing.util.notificationq.DefaultNotificationQueueService;
 import com.ning.billing.util.notificationq.NotificationQueueService;
@@ -35,11 +37,10 @@ public class PaymentTestModuleWithEmbeddedDb extends PaymentModule {
     public static class MockTagApiProvider implements Provider<TagUserApi> {
         @Override
         public TagUserApi get() {
-            final TagUserApi api = BrainDeadProxyFactory.createBrainDeadProxyFor(TagUserApi.class);
-            ((ZombieControl) api).addResult("getTags", new HashMap<String, Tag>());
+            final TagUserApi api = Mockito.mock(TagUserApi.class);
+            Mockito.when(api.getTags(Mockito.<UUID>any(), Mockito.<ObjectType>any())).thenReturn(new HashMap<String, Tag>());
             return api;
         }
-
     }
 
     @Override
diff --git a/payment/src/test/java/com/ning/billing/payment/TestHelper.java b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
index 6a9e422..abeaa54 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestHelper.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestHelper.java
@@ -19,6 +19,7 @@ package com.ning.billing.payment;
 import java.util.UUID;
 
 import org.joda.time.DateTime;
+import org.mockito.Mockito;
 
 import com.google.inject.Inject;
 import com.ning.billing.account.api.Account;
@@ -28,8 +29,6 @@ import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoiceCreationEvent;
 import com.ning.billing.invoice.api.InvoiceItem;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
-import com.ning.billing.mock.BrainDeadProxyFactory;
-import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.payment.api.PaymentApi;
 import com.ning.billing.payment.api.PaymentMethodPlugin;
 import com.ning.billing.payment.glue.PaymentTestModuleWithMocks;
@@ -57,7 +56,6 @@ public class TestHelper {
         context = factory.createCallContext("Princess Buttercup", CallOrigin.TEST, UserType.TEST);
     }
 
-
     public Invoice createTestInvoice(final Account account,
                                      final DateTime targetDate,
                                      final Currency currency,
@@ -81,7 +79,7 @@ public class TestHelper {
             }
         }
 
-        ((ZombieControl) invoicePaymentApi).addResult("getInvoice", invoice);
+        Mockito.when(invoicePaymentApi.getInvoice(invoice.getId())).thenReturn(invoice);
         final InvoiceCreationEvent event = new MockInvoiceCreationEvent(invoice.getId(), invoice.getAccountId(),
                                                                         invoice.getBalance(), invoice.getCurrency(),
                                                                         invoice.getInvoiceDate(),
@@ -95,34 +93,20 @@ public class TestHelper {
         final String name = "First" + UUID.randomUUID().toString() + " " + "Last" + UUID.randomUUID().toString();
         final String externalKey = UUID.randomUUID().toString();
 
-        final Account account = BrainDeadProxyFactory.createBrainDeadProxyFor(Account.class);
-        final ZombieControl zombie = (ZombieControl) account;
-        zombie.addResult("getId", UUID.randomUUID());
-        zombie.addResult("getExternalKey", externalKey);
-        zombie.addResult("getName", name);
-        zombie.addResult("getFirstNameLength", 10);
-        zombie.addResult("getPhone", "123-456-7890");
-        zombie.addResult("getEmail", email);
-        zombie.addResult("getCurrency", Currency.USD);
-        zombie.addResult("getBillCycleDay", 1);
-        zombie.addResult("isMigrated", false);
-        zombie.addResult("isNotifiedForInvoices", false);
-        zombie.addResult("getTimeZone", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getLocale", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getAddress1", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getAddress2", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getCompanyName", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getCity", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getStateOrProvince", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getCountry", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getPostalCode", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getPhone", BrainDeadProxyFactory.ZOMBIE_VOID);
-        zombie.addResult("getPaymentMethodId", BrainDeadProxyFactory.ZOMBIE_VOID);
-
-        ((ZombieControl) accountUserApi).addResult("getAccountById", account);
-        ((ZombieControl) accountUserApi).addResult("getAccountByKey", account);
-        ((ZombieControl) accountUserApi).addResult("updateAccount", BrainDeadProxyFactory.ZOMBIE_VOID);
-        //updateAccount
+        final Account account = Mockito.mock(Account.class);
+        Mockito.when(account.getId()).thenReturn(UUID.randomUUID());
+        Mockito.when(account.getExternalKey()).thenReturn(externalKey);
+        Mockito.when(account.getName()).thenReturn(name);
+        Mockito.when(account.getFirstNameLength()).thenReturn(10);
+        Mockito.when(account.getPhone()).thenReturn("123-456-7890");
+        Mockito.when(account.getEmail()).thenReturn(email);
+        Mockito.when(account.getCurrency()).thenReturn(Currency.USD);
+        Mockito.when(account.getBillCycleDay()).thenReturn(1);
+        Mockito.when(account.isMigrated()).thenReturn(false);
+        Mockito.when(account.isNotifiedForInvoices()).thenReturn(false);
+
+        Mockito.when(accountUserApi.getAccountById(Mockito.<UUID>any())).thenReturn(account);
+        Mockito.when(accountUserApi.getAccountByKey(Mockito.anyString())).thenReturn(account);
 
         final PaymentMethodPlugin pm = new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), true, null);
         addTestPaymentMethod(account, pm);
@@ -131,8 +115,6 @@ public class TestHelper {
 
     private void addTestPaymentMethod(final Account account, final PaymentMethodPlugin paymentMethodInfo) throws Exception {
         final UUID paymentMethodId = paymentApi.addPaymentMethod(PaymentTestModuleWithMocks.PLUGIN_TEST_NAME, account, true, paymentMethodInfo, context);
-        final ZombieControl zombie = (ZombieControl) account;
-        zombie.addResult("getPaymentMethodId", paymentMethodId);
+        Mockito.when(account.getPaymentMethodId()).thenReturn(paymentMethodId);
     }
-
 }
diff --git a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
index 957ce75..3fa67e0 100644
--- a/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
+++ b/payment/src/test/java/com/ning/billing/payment/TestRetryService.java
@@ -26,7 +26,6 @@ import java.util.concurrent.TimeoutException;
 
 import org.joda.time.DateTime;
 import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Guice;
 import org.testng.annotations.Test;
@@ -37,8 +36,6 @@ import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.config.PaymentConfig;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
-import com.ning.billing.mock.BrainDeadProxyFactory;
-import com.ning.billing.mock.BrainDeadProxyFactory.ZombieControl;
 import com.ning.billing.mock.glue.MockClockModule;
 import com.ning.billing.mock.glue.MockJunctionModule;
 import com.ning.billing.payment.api.Payment;
@@ -104,7 +101,6 @@ public class TestRetryService {
         mockPaymentProviderPlugin.clear();
 
         context = new DefaultCallContext("RetryServiceTests", CallOrigin.INTERNAL, UserType.TEST, clock);
-        ((ZombieControl) invoicePaymentApi).addResult("notifyOfPayment", BrainDeadProxyFactory.ZOMBIE_VOID);
     }
 
     @AfterMethod(groups = "fast")
@@ -137,7 +133,6 @@ public class TestRetryService {
         testSchedulesRetryInternal(paymentConfig.getPluginFailureRetryMaxAttempts() + 1, FailureType.PLUGIN_EXCEPTION);
     }
 
-
     @Test(groups = "fast")
     public void testFailedPaymentWithOneSuccessfulRetry() throws Exception {
         testSchedulesRetryInternal(1, FailureType.PAYMENT_FAILURE);
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
index 5037f48..d712082 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockEntitlementModule.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2012 Ning, Inc.
  *
  * Ning licenses this file to you under the Apache License, version 2.0
  * (the "License"); you may not use this file except in compliance with the
@@ -16,6 +16,8 @@
 
 package com.ning.billing.mock.glue;
 
+import org.mockito.Mockito;
+
 import com.google.inject.AbstractModule;
 import com.ning.billing.entitlement.api.EntitlementService;
 import com.ning.billing.entitlement.api.billing.ChargeThruApi;
@@ -23,41 +25,27 @@ import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi;
 import com.ning.billing.entitlement.api.timeline.EntitlementTimelineApi;
 import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.glue.EntitlementModule;
-import com.ning.billing.mock.BrainDeadProxyFactory;
 import com.ning.billing.util.glue.RealImplementation;
 
 public class MockEntitlementModule extends AbstractModule implements EntitlementModule {
-
-    /* (non-Javadoc)
-    * @see com.ning.billing.mock.glue.EntitlementModule#installEntitlementService()
-    */
     @Override
     public void installEntitlementService() {
-        bind(EntitlementService.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementService.class));
+        bind(EntitlementService.class).toInstance(Mockito.mock(EntitlementService.class));
     }
 
-    /* (non-Javadoc)
-    * @see com.ning.billing.mock.glue.EntitlementModule#installEntitlementUserApi()
-    */
     @Override
     public void installEntitlementUserApi() {
-        bind(EntitlementUserApi.class).annotatedWith(RealImplementation.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementUserApi.class));
+        bind(EntitlementUserApi.class).annotatedWith(RealImplementation.class).toInstance(Mockito.mock(EntitlementUserApi.class));
     }
 
-    /* (non-Javadoc)
-    * @see com.ning.billing.mock.glue.EntitlementModule#installEntitlementMigrationApi()
-    */
     @Override
     public void installEntitlementMigrationApi() {
-        bind(EntitlementMigrationApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementMigrationApi.class));
+        bind(EntitlementMigrationApi.class).toInstance(Mockito.mock(EntitlementMigrationApi.class));
     }
 
-    /* (non-Javadoc)
-    * @see com.ning.billing.mock.glue.EntitlementModule#installChargeThruApi()
-    */
     @Override
     public void installChargeThruApi() {
-        bind(ChargeThruApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(ChargeThruApi.class));
+        bind(ChargeThruApi.class).toInstance(Mockito.mock(ChargeThruApi.class));
     }
 
     @Override
@@ -71,6 +59,6 @@ public class MockEntitlementModule extends AbstractModule implements Entitlement
 
     @Override
     public void installEntitlementTimelineApi() {
-        bind(EntitlementTimelineApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementTimelineApi.class));
+        bind(EntitlementTimelineApi.class).toInstance(Mockito.mock(EntitlementTimelineApi.class));
     }
 }
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
index 6fd3f57..ecca1cd 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockInvoiceModule.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2012 Ning, Inc.
  *
  * Ning licenses this file to you under the Apache License, version 2.0
  * (the "License"); you may not use this file except in compliance with the
@@ -16,27 +16,28 @@
 
 package com.ning.billing.mock.glue;
 
+import org.mockito.Mockito;
+
 import com.google.inject.AbstractModule;
 import com.ning.billing.glue.InvoiceModule;
 import com.ning.billing.invoice.api.InvoiceMigrationApi;
 import com.ning.billing.invoice.api.InvoicePaymentApi;
 import com.ning.billing.invoice.api.InvoiceUserApi;
-import com.ning.billing.mock.BrainDeadProxyFactory;
 
 public class MockInvoiceModule extends AbstractModule implements InvoiceModule {
     @Override
     public void installInvoiceUserApi() {
-        bind(InvoiceUserApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoiceUserApi.class));
+        bind(InvoiceUserApi.class).toInstance(Mockito.mock(InvoiceUserApi.class));
     }
 
     @Override
     public void installInvoicePaymentApi() {
-        bind(InvoicePaymentApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoicePaymentApi.class));
+        bind(InvoicePaymentApi.class).toInstance(Mockito.mock(InvoicePaymentApi.class));
     }
 
     @Override
     public void installInvoiceMigrationApi() {
-        bind(InvoiceMigrationApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(InvoiceMigrationApi.class));
+        bind(InvoiceMigrationApi.class).toInstance(Mockito.mock(InvoiceMigrationApi.class));
     }
 
     @Override
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
index 67769dd..fedd51e 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
@@ -16,19 +16,20 @@
 
 package com.ning.billing.mock.glue;
 
+import org.mockito.Mockito;
+
 import com.google.inject.AbstractModule;
 import com.ning.billing.account.api.AccountUserApi;
 import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.glue.JunctionModule;
 import com.ning.billing.junction.api.BillingApi;
 import com.ning.billing.junction.api.BlockingApi;
-import com.ning.billing.mock.BrainDeadProxyFactory;
 
 public class MockJunctionModule extends AbstractModule implements JunctionModule {
-    private final BillingApi billingApi = BrainDeadProxyFactory.createBrainDeadProxyFor(BillingApi.class);
-    private final BlockingApi blockingApi = BrainDeadProxyFactory.createBrainDeadProxyFor(BlockingApi.class);
-    private final AccountUserApi userApi = BrainDeadProxyFactory.createBrainDeadProxyFor(AccountUserApi.class);
-    private final EntitlementUserApi entUserApi = BrainDeadProxyFactory.createBrainDeadProxyFor(EntitlementUserApi.class);
+    private final BillingApi billingApi = Mockito.mock(BillingApi.class);
+    private final BlockingApi blockingApi = Mockito.mock(BlockingApi.class);
+    private final AccountUserApi userApi = Mockito.mock(AccountUserApi.class);
+    private final EntitlementUserApi entUserApi = Mockito.mock(EntitlementUserApi.class);
 
     @Override
     protected void configure() {
@@ -43,7 +44,6 @@ public class MockJunctionModule extends AbstractModule implements JunctionModule
         bind(BillingApi.class).toInstance(billingApi);
     }
 
-
     @Override
     public void installAccountUserApi() {
         bind(AccountUserApi.class).toInstance(userApi);
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockOverdueModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockOverdueModule.java
index 7ab87d8..013005b 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockOverdueModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockOverdueModule.java
@@ -16,21 +16,20 @@
 
 package com.ning.billing.mock.glue;
 
+import org.mockito.Mockito;
+
 import com.google.inject.AbstractModule;
 import com.ning.billing.glue.OverdueModule;
-import com.ning.billing.mock.BrainDeadProxyFactory;
 import com.ning.billing.overdue.OverdueUserApi;
 
 public class MockOverdueModule extends AbstractModule implements OverdueModule {
-
     @Override
     public void installOverdueUserApi() {
-        bind(OverdueUserApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(OverdueUserApi.class));
+        bind(OverdueUserApi.class).toInstance(Mockito.mock(OverdueUserApi.class));
     }
 
     @Override
     protected void configure() {
         installOverdueUserApi();
     }
-
 }
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockPaymentModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockPaymentModule.java
index e974333..d2c7ddd 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockPaymentModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockPaymentModule.java
@@ -16,16 +16,14 @@
 
 package com.ning.billing.mock.glue;
 
+import org.mockito.Mockito;
+
 import com.google.inject.AbstractModule;
-import com.ning.billing.mock.BrainDeadProxyFactory;
 import com.ning.billing.payment.api.PaymentApi;
 
 public class MockPaymentModule extends AbstractModule {
-
     @Override
     protected void configure() {
-
-        bind(PaymentApi.class).toInstance(BrainDeadProxyFactory.createBrainDeadProxyFor(PaymentApi.class));
-
+        bind(PaymentApi.class).toInstance(Mockito.mock(PaymentApi.class));
     }
 }
diff --git a/util/src/test/java/com/ning/billing/mock/MockSubscription.java b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
index af6628d..2a3c024 100644
--- a/util/src/test/java/com/ning/billing/mock/MockSubscription.java
+++ b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
@@ -21,6 +21,7 @@ import java.util.UUID;
 
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
+import org.mockito.Mockito;
 
 import com.google.common.collect.ImmutableList;
 import com.ning.billing.catalog.api.BillingPeriod;
@@ -64,7 +65,7 @@ public class MockSubscription implements Subscription {
         this.transitions = ImmutableList.<EffectiveSubscriptionEvent>of();
     }
 
-    Subscription sub = BrainDeadProxyFactory.createBrainDeadProxyFor(Subscription.class);
+    Subscription sub = Mockito.mock(Subscription.class);
 
     @Override
     public boolean cancel(final DateTime requestedDate, final boolean eot, final CallContext context) throws EntitlementUserApiException {