Skip to content

Commit

Permalink
Q4OMZxqV - Send braintree metadata as tokenzation param in AP
Browse files Browse the repository at this point in the history
transactions
  • Loading branch information
stevecoffey authored and lkorth committed Aug 4, 2016
1 parent 06b7d93 commit a0b7cfb
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import com.google.android.gms.wallet.WalletConstants;
import com.google.android.gms.wallet.WalletConstants.CardNetwork;

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
Expand All @@ -43,8 +45,10 @@
import static com.braintreepayments.testutils.TestTokenizationKey.TOKENIZATION_KEY;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
Expand Down Expand Up @@ -98,6 +102,8 @@ public void getTokenizationParameters_returnsCorrectParametersInCallback()

BraintreeFragment fragment = getMockFragment(mActivityTestRule.getActivity(), configuration);
when(fragment.getAuthorization()).thenReturn(Authorization.fromString(TOKENIZATION_KEY));
when(fragment.getSessionId()).thenReturn("session-id");
when(fragment.getIntegrationType()).thenReturn("custom");
final CountDownLatch latch = new CountDownLatch(1);

AndroidPay.getTokenizationParameters(fragment, new TokenizationParametersListener() {
Expand All @@ -114,6 +120,17 @@ public void onResult(PaymentMethodTokenizationParameters parameters,
assertEquals(BuildConfig.VERSION_NAME,
parameters.getParameters().getString("braintree:sdkVersion"));

try {
JSONObject metadata = new JSONObject(parameters.getParameters().getString("braintree:metadata"));
assertNotNull(metadata);
assertEquals(BuildConfig.VERSION_NAME, metadata.getString("version"));
assertEquals("session-id", metadata.getString("sessionId"));
assertEquals("custom", metadata.getString("integration"));
assertEquals("android", metadata.get("platform"));
} catch (JSONException e) {
fail("Failed to unpack json from tokenization parameters: " + e.getMessage());
}

assertEquals(4, allowedCardNetworks.size());
assertTrue(allowedCardNetworks.contains(CardNetwork.VISA));
assertTrue(allowedCardNetworks.contains(CardNetwork.MASTERCARD));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.braintreepayments.api.models.AndroidPayCardNonce;
import com.braintreepayments.api.models.AndroidPayConfiguration;
import com.braintreepayments.api.models.Configuration;
import com.braintreepayments.api.models.MetadataBuilder;
import com.braintreepayments.api.models.TokenizationKey;
import com.google.android.gms.common.api.BooleanResult;
import com.google.android.gms.common.api.GoogleApiClient;
Expand Down Expand Up @@ -119,7 +120,12 @@ static PaymentMethodTokenizationParameters getTokenizationParameters(BraintreeFr
.addParameter("braintree:authorizationFingerprint",
fragment.getConfiguration().getAndroidPay().getGoogleAuthorizationFingerprint())
.addParameter("braintree:apiVersion", "v1")
.addParameter("braintree:sdkVersion", BuildConfig.VERSION_NAME);
.addParameter("braintree:sdkVersion", BuildConfig.VERSION_NAME)
.addParameter("braintree:metadata", new MetadataBuilder()
.integration(fragment.getIntegrationType())
.sessionId(fragment.getSessionId())
.version()
.toString());

if (fragment.getAuthorization() instanceof TokenizationKey) {
parameters.addParameter("braintree:clientKey", fragment.getAuthorization().toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,9 @@ public MetadataBuilder version() {
public JSONObject build() {
return mJson;
}

@Override
public String toString() {
return mJson.toString();
}
}

0 comments on commit a0b7cfb

Please sign in to comment.