@Config(sdk = 21)
@Test
public void deletePaymentMethodNonce_postToGraphQL()
throws Exception {
Authorization authorization = Authorization.fromString(stringFromFixture("client_token.json"));
BraintreeFragment fragment = new MockFragmentBuilder()
.authorization(authorization)
.graphQLSuccessResponse("Success")
.sessionId("test-session-id")
.integration("test-integration")
.build();
PaymentMethod.deletePaymentMethod(fragment, mCardNonce);
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
verify(fragment.getGraphQLHttpClient()).post(captor.capture(), any(HttpResponseCallback.class));
JSONObject graphQlRequest = new JSONObject(captor.getValue());
assertEquals(GraphQLQueryHelper.getQuery(RuntimeEnvironment.application, R.raw.delete_payment_method_mutation),
graphQlRequest.getString(GraphQLConstants.Keys.QUERY));
JSONObject metadata = graphQlRequest.getJSONObject("clientSdkMetadata");
assertEquals(mCardNonce.getNonce(), graphQlRequest.getJSONObject("variables")
.getJSONObject("input").getString("singleUseTokenId"));
assertEquals("DeletePaymentMethodFromSingleUseToken", graphQlRequest
.getString(GraphQLConstants.Keys.OPERATION_NAME));
assertEquals("test-integration", metadata.getString("integration"));
assertEquals("test-session-id", metadata.getString("sessionId"));
assertEquals("client", metadata.getString("source"));
}