@Test(expected = AuthenticationException.class) public void authenticationExceptionRaisedWhenBadCredentialsUsingNewTR() { CustomerRequest request = new CustomerRequest(); CustomerRequest trParams = new CustomerRequest(); BraintreeGateway gateway = new BraintreeGateway( Environment.DEVELOPMENT, "integration_merchant_id", "bad_public", "bad_private"); String queryString = TestHelper.simulateFormPostForTR( gateway, trParams, request, gateway.transparentRedirect().url()); gateway.transparentRedirect().confirmCustomer(queryString); }
public static String simulateFormPostForTR( BraintreeGateway gateway, Request trParams, Request request, String postUrl) { String response = ""; try { String trData = gateway.transparentRedirect().trData(trParams, "http://example.com"); StringBuilder postData = new StringBuilder("tr_data=") .append(URLEncoder.encode(trData, "UTF-8")) .append("&") .append(request.toQueryString()); URL url = new URL(postUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setInstanceFollowRedirects(false); connection.setDoOutput(true); connection.setRequestMethod("POST"); connection.addRequestProperty("Accept", "application/xml"); connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.getOutputStream().write(postData.toString().getBytes("UTF-8")); connection.getOutputStream().close(); if (connection.getResponseCode() == 422) { connection.getErrorStream(); } else { connection.getInputStream(); } response = new URL(connection.getHeaderField("Location")).getQuery(); } catch (IOException e) { throw new UnexpectedException(e.getMessage()); } return response; }