killbill-memoizeit
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueBase.java 3(+2 -1)
beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java 3(+2 -1)
payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorNoDB.java 4(+2 -2)
Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueBase.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueBase.java
index e473ec6..e3eb49c 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueBase.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueBase.java
@@ -20,6 +20,7 @@ package org.killbill.billing.beatrix.integration.overdue;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
+import java.util.UUID;
import java.util.concurrent.Callable;
import org.killbill.billing.account.api.Account;
@@ -63,7 +64,7 @@ public abstract class TestOverdueBase extends TestIntegrationBase {
account = createAccountWithNonOsgiPaymentMethod(getAccountData(0));
assertNotNull(account);
- paymentApi.addPaymentMethod(account, BeatrixIntegrationModule.NON_OSGI_PLUGIN_NAME, true, paymentMethodPlugin, PLUGIN_PROPERTIES, callContext);
+ paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, BeatrixIntegrationModule.NON_OSGI_PLUGIN_NAME, true, paymentMethodPlugin, PLUGIN_PROPERTIES, callContext);
productName = "Shotgun";
term = BillingPeriod.MONTHLY;
paymentPlugin.clear();
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
index 00cc687..4315ad9 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/overdue/TestOverdueIntegration.java
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
+import java.util.UUID;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
@@ -636,7 +637,7 @@ public class TestOverdueIntegration extends TestOverdueBase {
checkChangePlanWithOverdueState(baseEntitlement, true, true);
// Add a payment method and set it as default
- paymentApi.addPaymentMethod(account, BeatrixIntegrationModule.NON_OSGI_PLUGIN_NAME, true, paymentMethodPlugin, PLUGIN_PROPERTIES, callContext);
+ paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, BeatrixIntegrationModule.NON_OSGI_PLUGIN_NAME, true, paymentMethodPlugin, PLUGIN_PROPERTIES, callContext);
allowPaymentsAndResetOverdueToClearByPayingAllUnpaidInvoices(false);
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
index 3dfa194..748d120 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
@@ -306,7 +306,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB {
final PaymentMethodPlugin info = createPaymentMethodPlugin();
- paymentApi.addPaymentMethod(account, paymentPluginName, true, info, PLUGIN_PROPERTIES, callContext);
+ paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, paymentPluginName, true, info, PLUGIN_PROPERTIES, callContext);
return accountUserApi.getAccountById(account.getId(), callContext);
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
index e2f057c..3b160d5 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
@@ -39,6 +39,7 @@ import com.google.common.collect.Collections2;
public class PaymentMethodJson extends JsonBase {
+ private final String externalKey;
private final String paymentMethodId;
private final String accountId;
private final Boolean isDefault;
@@ -47,12 +48,14 @@ public class PaymentMethodJson extends JsonBase {
@JsonCreator
public PaymentMethodJson(@JsonProperty("paymentMethodId") final String paymentMethodId,
+ @JsonProperty("externalKey") final String externalKey,
@JsonProperty("accountId") final String accountId,
@JsonProperty("isDefault") final Boolean isDefault,
@JsonProperty("pluginName") final String pluginName,
@JsonProperty("pluginInfo") final PaymentMethodPluginDetailJson pluginInfo,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
+ this.externalKey = externalKey;
this.paymentMethodId = paymentMethodId;
this.accountId = accountId;
this.isDefault = isDefault;
@@ -78,7 +81,7 @@ public class PaymentMethodJson extends JsonBase {
pluginDetail.isDefaultPaymentMethod(),
properties);
}
- return new PaymentMethodJson(in.getId().toString(), account.getId().toString(), isDefault, in.getPluginName(),
+ return new PaymentMethodJson(in.getId().toString(), in.getExternalKey(), account.getId().toString(), isDefault, in.getPluginName(),
pluginDetailJson, toAuditLogJson(accountAuditLogs == null ? null : accountAuditLogs.getAuditLogsForPaymentMethod(in.getId())));
}
@@ -100,6 +103,11 @@ public class PaymentMethodJson extends JsonBase {
}
@Override
+ public String getExternalKey() {
+ return null;
+ }
+
+ @Override
public DateTime getCreatedDate() {
return null;
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
index 9fdff77..acd2457 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
@@ -547,7 +547,7 @@ public class AccountResource extends JaxRsResourceBase {
return Response.status(Status.BAD_REQUEST).build();
}
- final UUID paymentMethodId = paymentApi.addPaymentMethod(account, data.getPluginName(), isDefault, data.getPluginDetail(), pluginProperties, callContext);
+ final UUID paymentMethodId = paymentApi.addPaymentMethod(data.getExternalKey(), account, data.getPluginName(), isDefault, data.getPluginDetail(), pluginProperties, callContext);
if (payAllUnpaidInvoices && unpaidInvoices.size() > 0) {
for (final Invoice invoice : unpaidInvoices) {
// STEPH paymentApi.createPayment(account, invoice.getId(), invoice.getBalance(), pluginProperties, callContext);
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/DefaultDirectPaymentApi.java b/payment/src/main/java/org/killbill/billing/payment/api/DefaultDirectPaymentApi.java
index 1094f22..807ad0d 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/DefaultDirectPaymentApi.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/DefaultDirectPaymentApi.java
@@ -91,7 +91,7 @@ public class DefaultDirectPaymentApi implements DirectPaymentApi {
Preconditions.checkArgument(paymentMethodId != null || paymentOptions.isExternalPayment());
final UUID nonNulPaymentMethodId = (paymentMethodId != null) ?
paymentMethodId :
- paymentMethodProcessor.createOrGetExternalPaymentMethod(account, properties, callContext, internalCallContext);
+ paymentMethodProcessor.createOrGetExternalPaymentMethod(UUID.randomUUID().toString(), account, properties, callContext, internalCallContext);
return pluginControlledPaymentProcessor.createPurchase(true, account, nonNulPaymentMethodId, directPaymentId, amount, currency, directPaymentExternalKey, directPaymentTransactionExternalKey,
properties, paymentOptions.getPaymentControlPluginName(), callContext, internalCallContext);
@@ -188,11 +188,12 @@ public class DefaultDirectPaymentApi implements DirectPaymentApi {
@Override
- public UUID addPaymentMethod(final Account account, final String pluginName,
+ public UUID addPaymentMethod(String paymentMethodExternalKey,
+ final Account account, final String pluginName,
final boolean setDefault, final PaymentMethodPlugin paymentMethodInfo,
final Iterable<PluginProperty> properties, final CallContext context)
throws PaymentApiException {
- return paymentMethodProcessor.addPaymentMethod(pluginName, account, setDefault, paymentMethodInfo, properties,
+ return paymentMethodProcessor.addPaymentMethod(paymentMethodExternalKey, pluginName, account, setDefault, paymentMethodInfo, properties,
context, internalCallContextFactory.createInternalCallContext(account.getId(), context));
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentMethod.java b/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentMethod.java
index 2cd8ce7..e414f61 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentMethod.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentMethod.java
@@ -27,30 +27,37 @@ import org.killbill.billing.entity.EntityBase;
public class DefaultPaymentMethod extends EntityBase implements PaymentMethod {
+ private final String externalKey;
private final UUID accountId;
private final Boolean isActive;
private final String pluginName;
private final PaymentMethodPlugin pluginDetail;
- public DefaultPaymentMethod(final UUID paymentMethodId, @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate,
+ public DefaultPaymentMethod(final UUID paymentMethodId, final String externalKey, @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate,
final UUID accountId, final Boolean isActive, final String pluginName, @Nullable final PaymentMethodPlugin pluginDetail) {
super(paymentMethodId, createdDate, updatedDate);
+ this.externalKey = externalKey;
this.accountId = accountId;
this.isActive = isActive;
this.pluginName = pluginName;
this.pluginDetail = pluginDetail;
}
- public DefaultPaymentMethod(final UUID accountId, final String pluginName, final PaymentMethodPlugin pluginDetail) {
- this(UUID.randomUUID(), null, null, accountId, true, pluginName, pluginDetail);
+ public DefaultPaymentMethod(final String externalKey, final UUID accountId, final String pluginName, final PaymentMethodPlugin pluginDetail) {
+ this(UUID.randomUUID(), externalKey, null, null, accountId, true, pluginName, pluginDetail);
}
- public DefaultPaymentMethod(final UUID paymentMethodId, final UUID accountId, final String pluginName) {
- this(paymentMethodId, null, null, accountId, true, pluginName, null);
+ public DefaultPaymentMethod(final UUID paymentMethodId, final String externalKey, final UUID accountId, final String pluginName) {
+ this(paymentMethodId, externalKey, null, null, accountId, true, pluginName, null);
}
public DefaultPaymentMethod(final PaymentMethodModelDao input, @Nullable final PaymentMethodPlugin pluginDetail) {
- this(input.getId(), input.getCreatedDate(), input.getUpdatedDate(), input.getAccountId(), input.isActive(), input.getPluginName(), pluginDetail);
+ this(input.getId(), input.getExternalKey(), input.getCreatedDate(), input.getUpdatedDate(), input.getAccountId(), input.isActive(), input.getPluginName(), pluginDetail);
+ }
+
+ @Override
+ public String getExternalKey() {
+ return externalKey;
}
@Override
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/PaymentMethodProcessor.java b/payment/src/main/java/org/killbill/billing/payment/core/PaymentMethodProcessor.java
index f190ce2..234ddca 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/PaymentMethodProcessor.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/PaymentMethodProcessor.java
@@ -85,11 +85,11 @@ public class PaymentMethodProcessor extends ProcessorBase {
final TagInternalApi tagUserApi,
final GlobalLocker locker,
@Named(PLUGIN_EXECUTOR_NAMED) final ExecutorService executor,
- final Clock clock) {
+ final Clock clock) {
super(pluginRegistry, accountInternalApi, eventBus, paymentDao, nonEntityDao, tagUserApi, locker, executor, invoiceApi, clock);
}
- public UUID addPaymentMethod(final String paymentPluginServiceName, final Account account,
+ public UUID addPaymentMethod(final String paymentMethodExternalKey, final String paymentPluginServiceName, final Account account,
final boolean setDefault, final PaymentMethodPlugin paymentMethodProps,
final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext context)
throws PaymentApiException {
@@ -102,7 +102,7 @@ public class PaymentMethodProcessor extends ProcessorBase {
PaymentPluginApi pluginApi;
try {
pluginApi = getPaymentPluginApi(paymentPluginServiceName);
- pm = new DefaultPaymentMethod(account.getId(), paymentPluginServiceName, paymentMethodProps);
+ pm = new DefaultPaymentMethod(paymentMethodExternalKey, account.getId(), paymentPluginServiceName, paymentMethodProps);
pluginApi.addPaymentMethod(account.getId(), pm.getId(), paymentMethodProps, setDefault, properties, callContext);
final PaymentMethodModelDao pmModel = new PaymentMethodModelDao(pm.getId(), pm.getCreatedDate(), pm.getUpdatedDate(),
pm.getAccountId(), pm.getPluginName(), pm.isActive());
@@ -271,7 +271,7 @@ public class PaymentMethodProcessor extends ProcessorBase {
return null;
}
- public UUID createOrGetExternalPaymentMethod(final Account account, final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext context) throws PaymentApiException {
+ public UUID createOrGetExternalPaymentMethod(final String paymentMethodExternalKey, final Account account, final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext context) throws PaymentApiException {
// Check if this account has already used the external payment plugin
// If not, it's the first time - add a payment method for it
PaymentMethod externalPaymentMethod = getExternalPaymentMethod(account.getId(), properties, callContext, context);
@@ -279,13 +279,13 @@ public class PaymentMethodProcessor extends ProcessorBase {
return externalPaymentMethod.getId();
}
final DefaultNoOpPaymentMethodPlugin props = new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), false, properties);
- return addPaymentMethod(ExternalPaymentProviderPlugin.PLUGIN_NAME, account, false, props, properties, callContext, context);
+ return addPaymentMethod(paymentMethodExternalKey, ExternalPaymentProviderPlugin.PLUGIN_NAME, account, false, props, properties, callContext, context);
}
- public ExternalPaymentProviderPlugin createPaymentMethodAndGetExternalPaymentProviderPlugin(final Account account, final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext internalContext) throws PaymentApiException {
+ public ExternalPaymentProviderPlugin createPaymentMethodAndGetExternalPaymentProviderPlugin(final String paymentMethodExternalKey, final Account account, final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext internalContext) throws PaymentApiException {
// Check if this account has already used the external payment plugin
// If not, it's the first time - add a payment method for it
- createOrGetExternalPaymentMethod(account, properties, callContext, internalContext);
+ createOrGetExternalPaymentMethod(paymentMethodExternalKey, account, properties, callContext, internalContext);
return (ExternalPaymentProviderPlugin) getPaymentPluginApi(ExternalPaymentProviderPlugin.PLUGIN_NAME);
}
@@ -424,7 +424,7 @@ public class PaymentMethodProcessor extends ProcessorBase {
for (final PaymentMethodInfoPlugin cur : pluginPms) {
// If the kbPaymentId is NULL, the plugin does not know about it, so we create a new UUID
final UUID paymentMethodId = cur.getPaymentMethodId() != null ? cur.getPaymentMethodId() : UUID.randomUUID();
- final PaymentMethod input = new DefaultPaymentMethod(paymentMethodId, account.getId(), pluginName);
+ final PaymentMethod input = new DefaultPaymentMethod(paymentMethodId, paymentMethodId.toString(), account.getId(), pluginName);
final PaymentMethodModelDao pmModel = new PaymentMethodModelDao(input.getId(), input.getCreatedDate(), input.getUpdatedDate(),
input.getAccountId(), input.getPluginName(), input.isActive());
finalPaymentMethods.add(pmModel);
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
index 25d8c92..20ed4e1 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
@@ -133,7 +133,11 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
return OperationResult.SUCCESS;
} else {
// Return an ABORTED/FAILURE state based on the retry result.
- return getOperationResultAndSetContext(retryableDirectPaymentStateContext, paymentControlContext);
+ //return getOperationResultAndSetContext(retryableDirectPaymentStateContext, paymentControlContext);
+
+ // STEPH Do we actually want the purchase call to fail with an exception ?
+ throw new OperationException(null, getOperationResultAndSetContext(retryableDirectPaymentStateContext, paymentControlContext));
+
}
} catch (PaymentApiException e) {
// Wrap PaymentApiException, and throw a new OperationException with an ABORTED/FAILURE state based on the retry result.
diff --git a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentMethodModelDao.java b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentMethodModelDao.java
index 7d0e05e..2fea339 100644
--- a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentMethodModelDao.java
+++ b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentMethodModelDao.java
@@ -29,6 +29,7 @@ import org.killbill.billing.util.entity.dao.EntityModelDao;
public class PaymentMethodModelDao extends EntityBase implements EntityModelDao<PaymentMethod> {
+ private String externalKey;
private UUID accountId;
private String pluginName;
private Boolean isActive;
@@ -39,11 +40,20 @@ public class PaymentMethodModelDao extends EntityBase implements EntityModelDao<
final UUID accountId, final String pluginName,
final Boolean isActive) {
super(id, createdDate, updatedDate);
+ this.externalKey = id.toString();
this.accountId = accountId;
this.pluginName = pluginName;
this.isActive = isActive;
}
+ public String getExternalKey() {
+ return externalKey;
+ }
+
+ public void setExternalKey(final String externalKey) {
+ this.externalKey = externalKey;
+ }
+
public UUID getAccountId() {
return accountId;
}
@@ -52,6 +62,18 @@ public class PaymentMethodModelDao extends EntityBase implements EntityModelDao<
return pluginName;
}
+ public void setAccountId(final UUID accountId) {
+ this.accountId = accountId;
+ }
+
+ public void setPluginName(final String pluginName) {
+ this.pluginName = pluginName;
+ }
+
+ public void setIsActive(final Boolean isActive) {
+ this.isActive = isActive;
+ }
+
// TODO Required for making the BindBeanFactory with Introspector work
public Boolean getIsActive() {
return isActive;
@@ -98,6 +120,9 @@ public class PaymentMethodModelDao extends EntityBase implements EntityModelDao<
if (id != null ? !id.equals(that.id) : that.id != null) {
return false;
}
+ if (externalKey != null ? !externalKey.equals(that.externalKey) : that.externalKey != null) {
+ return false;
+ }
if (accountId != null ? !accountId.equals(that.accountId) : that.accountId != null) {
return false;
}
@@ -111,6 +136,7 @@ public class PaymentMethodModelDao extends EntityBase implements EntityModelDao<
@Override
public int hashCode() {
int result = accountId != null ? accountId.hashCode() : 0;
+ result = 31 * result + (externalKey != null ? externalKey.hashCode() : 0);
result = 31 * result + (pluginName != null ? pluginName.hashCode() : 0);
result = 31 * result + (isActive != null ? isActive.hashCode() : 0);
return result;
diff --git a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
index a4135fb..ddb5aa3 100644
--- a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
+++ b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
@@ -9,7 +9,8 @@ historyTableName() ::= "payment_method_history"
andCheckSoftDeletionWithComma(prefix) ::= "and <prefix>is_active"
tableFields(prefix) ::= <<
- <prefix>account_id
+ <prefix>external_key
+, <prefix>account_id
, <prefix>plugin_name
, <prefix>is_active
, <prefix>created_by
@@ -19,7 +20,8 @@ tableFields(prefix) ::= <<
>>
tableValues() ::= <<
- :accountId
+ :externalKey
+, :accountId
, :pluginName
, :isActive
, :createdBy
diff --git a/payment/src/main/resources/org/killbill/billing/payment/ddl.sql b/payment/src/main/resources/org/killbill/billing/payment/ddl.sql
index f2d7e35..d9fde8e 100644
--- a/payment/src/main/resources/org/killbill/billing/payment/ddl.sql
+++ b/payment/src/main/resources/org/killbill/billing/payment/ddl.sql
@@ -52,6 +52,7 @@ DROP TABLE IF EXISTS payment_methods;
CREATE TABLE payment_methods (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
id char(36) NOT NULL,
+ external_key varchar(255) NOT NULL,
account_id char(36) NOT NULL,
plugin_name varchar(50) NOT NULL,
is_active bool DEFAULT true,
@@ -71,7 +72,8 @@ CREATE INDEX payment_methods_tenant_account_record_id ON payment_methods(tenant_
DROP TABLE IF EXISTS payment_method_history;
CREATE TABLE payment_method_history (
record_id int(11) unsigned NOT NULL AUTO_INCREMENT,
- id char(36) NOT NULL,
+ id char(36) NOT NULL,'
+ external_key varchar(255) NOT NULL,
target_record_id int(11) unsigned NOT NULL,
account_id char(36) NOT NULL,
plugin_name varchar(50) NOT NULL,
diff --git a/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApiNoDB.java b/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApiNoDB.java
index d97bc39..75cc5da 100644
--- a/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApiNoDB.java
+++ b/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApiNoDB.java
@@ -164,7 +164,7 @@ public class TestPaymentApiNoDB extends PaymentTestSuiteNoDB {
assertEquals(initDefaultMethod.getId(), account.getPaymentMethodId());
final PaymentMethodPlugin newPaymenrMethod = new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), true, null);
- final UUID newPaymentMethodId = paymentApi.addPaymentMethod(account, MockPaymentProviderPlugin.PLUGIN_NAME, true, newPaymenrMethod, PLUGIN_PROPERTIES, callContext);
+ final UUID newPaymentMethodId = paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, MockPaymentProviderPlugin.PLUGIN_NAME, true, newPaymenrMethod, PLUGIN_PROPERTIES, callContext);
Mockito.when(account.getPaymentMethodId()).thenReturn(newPaymentMethodId);
methods = paymentApi.getAccountPaymentMethods(account.getId(), false, PLUGIN_PROPERTIES, callContext);
diff --git a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorNoDB.java b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorNoDB.java
index 1630d98..522f3c4 100644
--- a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorNoDB.java
+++ b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorNoDB.java
@@ -45,7 +45,7 @@ public class TestPaymentMethodProcessorNoDB extends PaymentTestSuiteNoDB {
Assert.assertEquals(paymentMethodProcessor.getPaymentMethods(account.getId(), false, properties, internalCallContext).size(), 0);
// The first call should create the payment method
- final ExternalPaymentProviderPlugin providerPlugin = paymentMethodProcessor.createPaymentMethodAndGetExternalPaymentProviderPlugin(account, properties, callContext, internalCallContext);
+ final ExternalPaymentProviderPlugin providerPlugin = paymentMethodProcessor.createPaymentMethodAndGetExternalPaymentProviderPlugin(UUID.randomUUID().toString(), account, properties, callContext, internalCallContext);
final List<PaymentMethod> paymentMethods = paymentMethodProcessor.getPaymentMethods(account.getId(), false, properties, internalCallContext);
Assert.assertEquals(paymentMethods.size(), 1);
Assert.assertEquals(paymentMethods.get(0).getPluginName(), ExternalPaymentProviderPlugin.PLUGIN_NAME);
@@ -54,7 +54,7 @@ public class TestPaymentMethodProcessorNoDB extends PaymentTestSuiteNoDB {
// The succeeding calls should not create any other payment method
final UUID externalPaymentMethodId = paymentMethods.get(0).getId();
for (int i = 0; i < 50; i++) {
- final ExternalPaymentProviderPlugin foundProviderPlugin = paymentMethodProcessor.createPaymentMethodAndGetExternalPaymentProviderPlugin(account, properties, callContext, internalCallContext);
+ final ExternalPaymentProviderPlugin foundProviderPlugin = paymentMethodProcessor.createPaymentMethodAndGetExternalPaymentProviderPlugin(UUID.randomUUID().toString(), account, properties, callContext, internalCallContext);
Assert.assertNotNull(foundProviderPlugin);
final List<PaymentMethod> foundPaymentMethods = paymentMethodProcessor.getPaymentMethods(account.getId(), false, properties, internalCallContext);
diff --git a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorRefreshWithDB.java b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorRefreshWithDB.java
index eac353c..52a5434 100644
--- a/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorRefreshWithDB.java
+++ b/payment/src/test/java/org/killbill/billing/payment/core/TestPaymentMethodProcessorRefreshWithDB.java
@@ -68,7 +68,7 @@ public class TestPaymentMethodProcessorRefreshWithDB extends PaymentTestSuiteWit
Assert.assertEquals(getPluginApi().getPaymentMethods(account.getId(), true, PLUGIN_PROPERTIES, callContext).size(), 1);
final UUID firstPmId = account.getPaymentMethodId();
- final UUID secondPmId = paymentApi.addPaymentMethod(account, MockPaymentProviderPlugin.PLUGIN_NAME, true, new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), false, null), PLUGIN_PROPERTIES, callContext);
+ final UUID secondPmId = paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, MockPaymentProviderPlugin.PLUGIN_NAME, true, new DefaultNoOpPaymentMethodPlugin(UUID.randomUUID().toString(), false, null), PLUGIN_PROPERTIES, callContext);
Assert.assertEquals(getPluginApi().getPaymentMethods(account.getId(), true, PLUGIN_PROPERTIES, callContext).size(), 2);
Assert.assertEquals(paymentApi.getAccountPaymentMethods(account.getId(), false, PLUGIN_PROPERTIES, callContext).size(), 2);
diff --git a/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java b/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
index e663cdc..aee2f2d 100644
--- a/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
+++ b/payment/src/test/java/org/killbill/billing/payment/TestPaymentHelper.java
@@ -130,7 +130,7 @@ public class TestPaymentHelper {
}
public void addTestPaymentMethod(final Account account, final PaymentMethodPlugin paymentMethodInfo) throws Exception {
- final UUID paymentMethodId = paymentApi.addPaymentMethod(account, MockPaymentProviderPlugin.PLUGIN_NAME, true, paymentMethodInfo, ImmutableList.<PluginProperty>of(), context);
+ final UUID paymentMethodId = paymentApi.addPaymentMethod(UUID.randomUUID().toString(), account, MockPaymentProviderPlugin.PLUGIN_NAME, true, paymentMethodInfo, ImmutableList.<PluginProperty>of(), context);
Mockito.when(account.getPaymentMethodId()).thenReturn(paymentMethodId);
}
}