killbill-memoizeit

Fix Payment tests (only one disabled because behavior changed,

6/26/2014 10:25:29 PM

Details

diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentOperation.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentOperation.java
index 97c0b59..c519331 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentOperation.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/DirectPaymentOperation.java
@@ -73,7 +73,7 @@ public abstract class DirectPaymentOperation extends OperationCallbackBase imple
 
      // STEPH: should we ever return an OperationResult.EXCEPTION at this layer -- since there is transtion back to init and there cannot be retried?
             logger.warn("Plugin call threw an exception for account {}", directPaymentStateContext.getAccount().getExternalKey(), e);
-            return new OperationException(e, OperationResult.EXCEPTION);
+            return new OperationException(realException, OperationResult.EXCEPTION);
         }
     }
 
@@ -106,6 +106,8 @@ public abstract class DirectPaymentOperation extends OperationCallbackBase imple
             return doOperation();
         } catch (final PaymentApiException e) {
             throw new OperationException(e, OperationResult.FAILURE);
+        } catch (RuntimeException e) {
+            throw new OperationException(e, OperationResult.EXCEPTION);
         }
     }
 
diff --git a/payment/src/test/java/org/killbill/billing/payment/core/sm/TestDirectPaymentOperation.java b/payment/src/test/java/org/killbill/billing/payment/core/sm/TestDirectPaymentOperation.java
index 20fcb90..4fd5d17 100644
--- a/payment/src/test/java/org/killbill/billing/payment/core/sm/TestDirectPaymentOperation.java
+++ b/payment/src/test/java/org/killbill/billing/payment/core/sm/TestDirectPaymentOperation.java
@@ -62,8 +62,7 @@ public class TestDirectPaymentOperation extends PaymentTestSuiteNoDB {
         Assert.assertNotNull(directPaymentStateContext.getPaymentInfoPlugin());
     }
 
-    // STEPH understand what is the correct behavior
-    @Test(groups = "fast", enabled=false)
+    @Test(groups = "fast")
     public void testPluginFailure() throws Exception {
         setUp(null);
 
diff --git a/payment/src/test/java/org/killbill/billing/payment/core/sm/TestPluginOperation.java b/payment/src/test/java/org/killbill/billing/payment/core/sm/TestPluginOperation.java
index b86ceef..08e0fa3 100644
--- a/payment/src/test/java/org/killbill/billing/payment/core/sm/TestPluginOperation.java
+++ b/payment/src/test/java/org/killbill/billing/payment/core/sm/TestPluginOperation.java
@@ -213,7 +213,10 @@ public class TestPluginOperation extends PaymentTestSuiteNoDB {
                                                                                                   ImmutableList.<PluginProperty>of(),
                                                                                                   internalCallContext,
                                                                                                   callContext);
-        return new PluginOperationTest(locker, paymentPluginDispatcher, directPaymentStateContext);
+
+        final DirectPaymentAutomatonDAOHelper daoHelper = Mockito.mock(DirectPaymentAutomatonDAOHelper.class);
+        Mockito.when(daoHelper.getPaymentProviderPlugin()).thenReturn(null);
+        return new PluginOperationTest(daoHelper, locker, paymentPluginDispatcher, directPaymentStateContext);
     }
 
     private static final class CallbackTest implements WithAccountLockCallback<OperationResult, PaymentApiException> {
@@ -286,9 +289,8 @@ public class TestPluginOperation extends PaymentTestSuiteNoDB {
 
     private static final class PluginOperationTest extends DirectPaymentOperation {
 
-        protected PluginOperationTest(final GlobalLocker locker, final PluginDispatcher<OperationResult> paymentPluginDispatcher, final DirectPaymentStateContext directPaymentStateContext) throws PaymentApiException {
-            // STEPH null ?
-            super(null, locker, paymentPluginDispatcher, directPaymentStateContext);
+        protected PluginOperationTest(final DirectPaymentAutomatonDAOHelper daoHelper, final GlobalLocker locker, final PluginDispatcher<OperationResult> paymentPluginDispatcher, final DirectPaymentStateContext directPaymentStateContext) throws PaymentApiException {
+            super(daoHelper, locker, paymentPluginDispatcher, directPaymentStateContext);
         }
 
         @Override