package com.braintreegateway.integrationtest; import com.braintreegateway.*; import com.braintreegateway.exceptions.ForgedQueryStringException; import com.braintreegateway.exceptions.NotFoundException; import com.braintreegateway.exceptions.DownForMaintenanceException; import com.braintreegateway.test.Nonce; import org.junit.Test; import java.math.BigDecimal; import java.text.ParseException; import java.util.*; import static org.junit.Assert.*; public class MasterpassCardIT extends IntegrationTest { @Test public void createWithPaymentMethodNonce() { Customer customer = gateway.customer().create(new CustomerRequest()).getTarget(); PaymentMethodRequest request = new PaymentMethodRequest(). customerId(customer.getId()). paymentMethodNonce(Nonce.MasterpassVisa); Result<? extends PaymentMethod> result = gateway.paymentMethod().create(request); assertTrue(result.isSuccess()); MasterpassCard masterpassCard = (MasterpassCard) result.getTarget(); assertNotNull(masterpassCard.getBillingAddress()); assertNotNull(masterpassCard.getBin()); assertNotNull(masterpassCard.getCardType()); assertNotNull(masterpassCard.getCardholderName()); assertNotNull(masterpassCard.getCommercial()); assertNotNull(masterpassCard.getCountryOfIssuance()); assertNotNull(masterpassCard.getCreatedAt()); assertNotNull(masterpassCard.getCustomerId()); assertNotNull(masterpassCard.getCustomerLocation()); assertNotNull(masterpassCard.getDebit()); assertNotNull(masterpassCard.isDefault()); assertNotNull(masterpassCard.getDurbinRegulated()); assertNotNull(masterpassCard.getExpirationDate()); assertNotNull(masterpassCard.getExpirationMonth()); assertNotNull(masterpassCard.getExpirationYear()); assertNotNull(masterpassCard.isExpired()); assertNotNull(masterpassCard.getHealthcare()); assertNotNull(masterpassCard.getImageUrl()); assertNotNull(masterpassCard.getIssuingBank()); assertNotNull(masterpassCard.getLast4()); assertNotNull(masterpassCard.getMaskedNumber()); assertNotNull(masterpassCard.getPayroll()); assertNotNull(masterpassCard.getPrepaid()); assertNotNull(masterpassCard.getProductId()); assertNotNull(masterpassCard.getSubscriptions()); assertNotNull(masterpassCard.getToken()); assertNotNull(masterpassCard.getUniqueNumberIdentifier()); assertNotNull(masterpassCard.getUpdatedAt()); MasterpassCard foundMasterpassCard = (MasterpassCard) gateway.paymentMethod().find(masterpassCard.getToken()); assertEquals(masterpassCard.getToken(), foundMasterpassCard.getToken()); } @Test public void searchOnPaymentInstrumentTypeIsMasterpassCard() { TransactionRequest request = new TransactionRequest(). amount(new BigDecimal("1000")). paymentMethodNonce(Nonce.MasterpassVisa); Transaction transaction = gateway.transaction().sale(request).getTarget(); TransactionSearchRequest searchRequest = new TransactionSearchRequest(). id().is(transaction.getId()). paymentInstrumentType().is(PaymentInstrumentType.MASTERPASS_CARD); ResourceCollection<Transaction> collection = gateway.transaction().search(searchRequest); assertEquals(PaymentInstrumentType.MASTERPASS_CARD, collection.getFirst().getPaymentInstrumentType()); MasterpassCardDetails masterpassCardDetails = collection.getFirst().getMasterpassCardDetails(); assertNotNull(masterpassCardDetails); } @Test public void createCustomerWithMasterpassCard() { Customer customer = gateway.customer().create(new CustomerRequest()).getTarget(); PaymentMethodRequest request = new PaymentMethodRequest(). customerId(customer.getId()). paymentMethodNonce(Nonce.MasterpassVisa); Result<? extends PaymentMethod> result = gateway.paymentMethod().create(request); assertTrue(result.isSuccess()); Customer foundCustomer = gateway.customer().find(customer.getId()); assertEquals(1, foundCustomer.getMasterpassCards().size()); MasterpassCard masterpassCard = foundCustomer.getMasterpassCards().get(0); assertTrue(foundCustomer.getPaymentMethods().contains(masterpassCard)); } @Test public void saleWithMasterpassAndVault() { String masterpassNonce = Nonce.MasterpassAmEx; TransactionRequest request = new TransactionRequest(). amount(SandboxValues.TransactionAmount.AUTHORIZE.amount). paymentMethodNonce(masterpassNonce). options(). storeInVault(true). done(); Result<Transaction> result = gateway.transaction().sale(request); assertTrue(result.isSuccess()); Transaction transaction = result.getTarget(); assertEquals(PaymentInstrumentType.MASTERPASS_CARD, transaction.getPaymentInstrumentType()); MasterpassCardDetails masterpassCardDetails = transaction.getMasterpassCardDetails(); assertNotNull(masterpassCardDetails.getBin()); assertNotNull(masterpassCardDetails.getCardType()); assertNotNull(masterpassCardDetails.getCardholderName()); assertNotNull(masterpassCardDetails.getCommercial()); assertNotNull(masterpassCardDetails.getCountryOfIssuance()); assertNotNull(masterpassCardDetails.getDebit()); assertNotNull(masterpassCardDetails.getDurbinRegulated()); assertNotNull(masterpassCardDetails.getExpirationDate()); assertNotNull(masterpassCardDetails.getExpirationMonth()); assertNotNull(masterpassCardDetails.getExpirationYear()); assertNotNull(masterpassCardDetails.getHealthcare()); assertNotNull(masterpassCardDetails.getImageUrl()); assertNotNull(masterpassCardDetails.getIssuingBank()); assertNotNull(masterpassCardDetails.getLast4()); assertNotNull(masterpassCardDetails.getMaskedNumber()); assertNotNull(masterpassCardDetails.getPayroll()); assertNotNull(masterpassCardDetails.getPrepaid()); assertNotNull(masterpassCardDetails.getProductId()); assertNotNull(masterpassCardDetails.getToken()); } }