Search in sources :

Example 1 with Reason

use of com.fitpay.android.api.models.card.Reason in project fitpay-android-sdk by fitpay.

the class CreditCardTest2 method testCanVerifyAndDeactivate.

@Test
public void testCanVerifyAndDeactivate() throws Exception {
    Device device = getTestDevice();
    Device createdDevice = createDevice(user, device);
    assertNotNull("created device", createdDevice);
    Collections.DeviceCollection devices = getDevices(user);
    assertNotNull("devices collection should not be null", devices);
    assertEquals("should have one device", 1, devices.getTotalResults());
    String pan = "9999545454545454";
    CreditCard creditCard = getTestCreditCard(pan);
    CreditCard createdCard = createCreditCard(user, creditCard);
    assertNotNull("card not created", createdCard);
    assertEquals("card not in expected state", "ELIGIBLE", createdCard.getState());
    createdCard = acceptTerms(createdCard);
    assertNotNull("card not successfully updated by decline terms", createdCard);
    assertEquals("card state", "PENDING_VERIFICATION", createdCard.getState());
    assertTrue("no verification methods", createdCard.getVerificationMethods().size() > 0);
    assertEquals("verification state", "AVAILABLE_FOR_SELECTION", createdCard.getVerificationMethods().get(0).getState());
    VerificationMethod method = selectVerificationMethod(createdCard.getVerificationMethods().get(0));
    assertEquals("verification state after selection", "AWAITING_VERIFICATION", method.getState());
    CreditCard retrievedCard = getCreditCard(createdCard);
    assertEquals("number of verification methods", createdCard.getVerificationMethods().size(), retrievedCard.getVerificationMethods().size());
    VerificationMethod selectedMethod = null;
    for (VerificationMethod m : retrievedCard.getVerificationMethods()) {
        if (m.getMethodType().equals(method.getMethodType()) && m.getState().equals("AWAITING_VERIFICATION")) {
            selectedMethod = m;
            break;
        }
    }
    assertNotNull("No selected method found", selectedMethod);
    selectedMethod = verifyVerificationMethod(selectedMethod, "12345");
    assertEquals("post verification state", "VERIFIED", selectedMethod.getState());
    retrievedCard = waitForActivation(retrievedCard);
    assertEquals("post verification card state", "ACTIVE", retrievedCard.getState());
    Reason reason = new Reason();
    reason.setCausedBy(CardInitiators.INITIATOR_CARDHOLDER);
    reason.setReason("tired of racking up miles");
    retrievedCard = deactivateCard(retrievedCard, reason);
    assertEquals("post deactivation card state", "DEACTIVATED", retrievedCard.getState());
    retrievedCard = getCreditCard(retrievedCard);
    assertEquals("post deactivation card state", "DEACTIVATED", retrievedCard.getState());
    retrievedCard = reactivateCard(retrievedCard, reason);
    assertEquals("post verification card state", "ACTIVE", retrievedCard.getState());
    retrievedCard = getCreditCard(retrievedCard);
    assertEquals("post reactivation card state", "ACTIVE", retrievedCard.getState());
}
Also used : Device(com.fitpay.android.api.models.device.Device) VerificationMethod(com.fitpay.android.api.models.card.VerificationMethod) Collections(com.fitpay.android.api.models.collection.Collections) CreditCard(com.fitpay.android.api.models.card.CreditCard) Reason(com.fitpay.android.api.models.card.Reason) Test(org.junit.Test)

Example 2 with Reason

use of com.fitpay.android.api.models.card.Reason in project fitpay-android-sdk by fitpay.

the class Steps method reactivateCard.

public void reactivateCard() throws InterruptedException {
    Assert.assertNotNull(currentCard);
    final CountDownLatch latch = new CountDownLatch(1);
    final boolean[] isRequestSuccess = { false };
    final List<String> errors = new ArrayList<>();
    Reason reason = new Reason();
    reason.setReason("found");
    reason.setCausedBy(CardInitiators.INITIATOR_CARDHOLDER);
    currentCard.reactivate(reason, new ApiCallback<CreditCard>() {

        @Override
        public void onSuccess(CreditCard result) {
            isRequestSuccess[0] = true;
            currentCard = result;
            latch.countDown();
        }

        @Override
        public void onFailure(@ResultCode.Code int errorCode, String errorMessage) {
            errors.add("error code: " + errorCode + ", message: " + errorMessage);
            latch.countDown();
        }
    });
    latch.await(TIMEOUT, TimeUnit.SECONDS);
    Assert.assertTrue("failed reactivate request: " + errors, isRequestSuccess[0]);
    Assert.assertNotNull(currentCard);
}
Also used : ArrayList(java.util.ArrayList) CountDownLatch(java.util.concurrent.CountDownLatch) Reason(com.fitpay.android.api.models.card.Reason) CreditCard(com.fitpay.android.api.models.card.CreditCard)

Example 3 with Reason

use of com.fitpay.android.api.models.card.Reason in project fitpay-android-sdk by fitpay.

the class Steps method deactivateCard.

public void deactivateCard() throws InterruptedException {
    Assert.assertNotNull(currentCard);
    final CountDownLatch latch = new CountDownLatch(1);
    final boolean[] isRequestSuccess = { false };
    final List<String> errors = new ArrayList<>();
    Reason reason = new Reason();
    reason.setReason("lost");
    reason.setCausedBy(CardInitiators.INITIATOR_CARDHOLDER);
    currentCard.deactivate(reason, new ApiCallback<CreditCard>() {

        @Override
        public void onSuccess(CreditCard result) {
            isRequestSuccess[0] = true;
            currentCard = result;
            latch.countDown();
        }

        @Override
        public void onFailure(@ResultCode.Code int errorCode, String errorMessage) {
            errors.add("error code: " + errorCode + ", message: " + errorMessage);
            latch.countDown();
        }
    });
    latch.await(TIMEOUT, TimeUnit.SECONDS);
    Assert.assertTrue("failed deactivate request: " + errors, isRequestSuccess[0]);
    Assert.assertNotNull(currentCard);
}
Also used : ArrayList(java.util.ArrayList) CountDownLatch(java.util.concurrent.CountDownLatch) Reason(com.fitpay.android.api.models.card.Reason) CreditCard(com.fitpay.android.api.models.card.CreditCard)

Aggregations

CreditCard (com.fitpay.android.api.models.card.CreditCard)3 Reason (com.fitpay.android.api.models.card.Reason)3 ArrayList (java.util.ArrayList)2 CountDownLatch (java.util.concurrent.CountDownLatch)2 VerificationMethod (com.fitpay.android.api.models.card.VerificationMethod)1 Collections (com.fitpay.android.api.models.collection.Collections)1 Device (com.fitpay.android.api.models.device.Device)1 Test (org.junit.Test)1