package com.braintreegateway.integrationtest;
import com.braintreegateway.*;
import com.braintreegateway.testhelpers.TestHelper;
import com.braintreegateway.exceptions.NotFoundException;
import org.junit.Test;
import java.util.Collections;
import java.util.Random;
import static org.junit.Assert.*;
public class EuropeBankAccountIT extends IntegrationTest {
@Test
public void canExchangeNonceForEuropeBankAccount() {
Result<Customer> customerResult = gateway.customer().create(new CustomerRequest());
assertTrue(customerResult.isSuccess());
Customer customer = customerResult.getTarget();
String nonce = TestHelper.generateEuropeBankAccountNonce(gateway, customer);
PaymentMethodRequest request = new PaymentMethodRequest().
customerId(customer.getId()).
paymentMethodNonce(nonce);
Result<? extends PaymentMethod> result = gateway.paymentMethod().create(request);
assertTrue(result.isSuccess());
PaymentMethod paymentMethod = result.getTarget();
assertNotNull(paymentMethod.getToken());
EuropeBankAccount bankAccount = (EuropeBankAccount) gateway.paymentMethod().find(paymentMethod.getToken());
assertEquals(paymentMethod.getToken(), bankAccount.getToken());
assertEquals(bankAccount.getBic(), "DEUTDEFF");
assertNotNull(bankAccount.getMaskedIban());
assertNotNull(bankAccount.getMandateReferenceNumber());
assertNotNull(bankAccount.getImageUrl());
}
@Test
public void findReturnsNoSubscriptionsAssociatedWithEuropeBankAccount() {
Result<Customer> customerResult = gateway.customer().create(new CustomerRequest());
assertTrue(customerResult.isSuccess());
Customer customer = customerResult.getTarget();
String nonce = TestHelper.generateEuropeBankAccountNonce(gateway, customer);
PaymentMethodRequest request = new PaymentMethodRequest()
.customerId(customer.getId())
.paymentMethodNonce(nonce);
Result<? extends PaymentMethod> result = gateway.paymentMethod().create(request);
assertTrue(result.isSuccess());
PaymentMethod paymentMethod = result.getTarget();
assertNotNull(paymentMethod.getToken());
EuropeBankAccount bankAccount = (EuropeBankAccount) gateway.paymentMethod().find(paymentMethod.getToken());
assertEquals(paymentMethod.getToken(), bankAccount.getToken());
assertEquals(bankAccount.getBic(), "DEUTDEFF");
assertNotNull(bankAccount.getMaskedIban());
assertNotNull(bankAccount.getMandateReferenceNumber());
assertNotNull(bankAccount.getImageUrl());
assertEquals(bankAccount.getSubscriptions(), Collections.EMPTY_LIST);
}
}