public static PaymentMethod buildPaymentMethod(final UUID accountId, final UUID paymentMethodId, final String pluginName, @Nullable final OSGIKillbill killbillApi) throws PaymentApiException {
final PaymentMethod paymentMethod = Mockito.mock(PaymentMethod.class);
Mockito.when(paymentMethod.getId()).thenReturn(paymentMethodId);
Mockito.when(paymentMethod.getExternalKey()).thenReturn(UUID.randomUUID().toString());
Mockito.when(paymentMethod.isActive()).thenReturn(true);
Mockito.when(paymentMethod.getPluginName()).thenReturn(pluginName);
if (killbillApi != null) {
Mockito.when(killbillApi.getPaymentApi().getAccountPaymentMethods(Mockito.eq(accountId), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.<Iterable<PluginProperty>>any(), Mockito.<TenantContext>any())).thenReturn(ImmutableList.<PaymentMethod>of(paymentMethod));
Mockito.when(killbillApi.getPaymentApi().getPaymentMethodById(Mockito.eq(paymentMethod.getId()), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.<Iterable<PluginProperty>>any(), Mockito.<TenantContext>any())).thenReturn(paymentMethod);
}
return paymentMethod;
}