Search in sources :

Example 1 with CommitConfirm

use of com.fitpay.android.api.models.device.CommitConfirm in project fitpay-android-sdk by fitpay.

the class CommitTest2 method testCanConfirmCommits.

@Test
public void testCanConfirmCommits() 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 = "9999504454545450";
    CreditCard creditCard = getTestCreditCard(pan);
    CreditCard createdCard = createCreditCard(user, creditCard);
    assertNotNull("card not created", createdCard);
    createdCard = acceptTerms(createdCard);
    waitForActivation(createdCard);
    pan = "9999504454545451";
    creditCard = getTestCreditCard(pan);
    createdCard = createCreditCard(user, creditCard);
    assertNotNull("card not created", createdCard);
    acceptTerms(createdCard);
    Collections.CommitsCollection commits = getCommits(createdDevice, null);
    assertNotNull("commits collection", commits);
    assertTrue("number of commits should be 2 or more.  Got: " + commits.getTotalResults(), commits.getTotalResults() >= 2);
    for (Commit commit : commits.getResults()) {
        final CountDownLatch latch = new CountDownLatch(1);
        if (commit.canConfirmCommit()) {
            CommitConfirm confirm = new CommitConfirm(ResponseState.SUCCESS);
            commit.confirm(confirm, new ApiCallback<Void>() {

                @Override
                public void onSuccess(Void result) {
                    latch.countDown();
                }

                @Override
                public void onFailure(@ResultCode.Code int errorCode, String errorMessage) {
                    fail("commit confirm failed");
                }
            });
        } else {
        // TODO: uncomment out once the paltform supports this feature fully
        // if (!commit.getCommitType().equals(CommitTypes.APDU_PACKAGE)) {
        // fail("expected confirm link on commit: " + commit);
        // }
        }
        latch.await(5000, TimeUnit.MILLISECONDS);
    }
}
Also used : Device(com.fitpay.android.api.models.device.Device) CountDownLatch(java.util.concurrent.CountDownLatch) CreditCard(com.fitpay.android.api.models.card.CreditCard) Commit(com.fitpay.android.api.models.device.Commit) CommitConfirm(com.fitpay.android.api.models.device.CommitConfirm) Collections(com.fitpay.android.api.models.collection.Collections) Test(org.junit.Test)

Aggregations

CreditCard (com.fitpay.android.api.models.card.CreditCard)1 Collections (com.fitpay.android.api.models.collection.Collections)1 Commit (com.fitpay.android.api.models.device.Commit)1 CommitConfirm (com.fitpay.android.api.models.device.CommitConfirm)1 Device (com.fitpay.android.api.models.device.Device)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 Test (org.junit.Test)1