use of com.ingenico.connect.gateway.sdk.java.Client in project connect-sdk-java by Ingenico-ePayments.
the class DefaultConnectionLoggerTest method createClient.
@SuppressWarnings("resource")
private Client createClient(HttpHost host, int connectTimeout, int socketTimeout) throws URISyntaxException {
URI uri = new URI(host.getSchemeName(), null, host.getHostName(), host.getPort(), null, null, null);
Connection connection = new DefaultConnection(connectTimeout, socketTimeout);
Authenticator authenticator = new DefaultAuthenticator(AuthorizationType.V1HMAC, "apiKey", "secret");
MetaDataProvider metaDataProvider = new MetaDataProvider("Ingenico");
Session session = new Session(uri, connection, authenticator, metaDataProvider);
Communicator communicator = Factory.createCommunicator(session);
Client client = Factory.createClient(communicator);
return client;
}
use of com.ingenico.connect.gateway.sdk.java.Client in project connect-sdk-java by Ingenico-ePayments.
the class DefaultConnectionLoggerTest method testReadTimeout.
@Test
public void testReadTimeout() throws Exception {
// an exception is thrown before logging the response
serverBootstrap.registerHandler("/v1/1234/services/testconnection", requestHandler);
HttpHost host = start();
Client client = createClient(host, 1000, 10);
TestLogger logger = new TestLogger();
client.enableLogging(logger);
setupRequestHandler(delayedAnswer(setHtmlResponse("notFound.html", 404), 100));
try {
client.merchant("1234").services().testconnection();
Assert.fail("expected CommunicationException");
} catch (CommunicationException e) {
// expected
} finally {
client.close();
}
Assert.assertEquals(2, logger.entries.size());
TestLoggerEntry requestEntry = logger.entries.get(0);
Assert.assertNotNull(requestEntry.message);
Assert.assertNull(requestEntry.thrown);
TestLoggerEntry errorEntry = logger.entries.get(1);
Assert.assertNotNull(errorEntry.message);
Assert.assertNotNull(errorEntry.thrown);
assertRequestAndError(requestEntry.message, errorEntry.message, "testConnection");
Assert.assertEquals(SocketTimeoutException.class, errorEntry.thrown.getClass());
}
use of com.ingenico.connect.gateway.sdk.java.Client in project connect-sdk-java by Ingenico-ePayments.
the class DefaultConnectionLoggerTest method testNonJson.
@Test
public void testNonJson() throws Exception {
// an exception is thrown after logging the response
serverBootstrap.registerHandler("/v1/1234/services/testconnection", requestHandler);
HttpHost host = start();
Client client = createClient(host);
TestLogger logger = new TestLogger();
client.enableLogging(logger);
setupRequestHandler(setHtmlResponse("notFound.html", 404));
try {
client.merchant("1234").services().testconnection();
Assert.fail("expected NotFoundException");
} catch (NotFoundException e) {
// expected
} finally {
client.close();
}
Assert.assertEquals(2, logger.entries.size());
TestLoggerEntry requestEntry = logger.entries.get(0);
Assert.assertNotNull(requestEntry.message);
Assert.assertNull(requestEntry.thrown);
TestLoggerEntry responseEntry = logger.entries.get(1);
Assert.assertNotNull(responseEntry.message);
Assert.assertNull(responseEntry.thrown);
assertRequestAndResponse(requestEntry.message, responseEntry.message, "testConnection", "notFound");
}
use of com.ingenico.connect.gateway.sdk.java.Client in project connect-sdk-java by Ingenico-ePayments.
the class PaymentsClientTest method testCreateSuccess.
/**
* Tests that a non-failure response will not throw an exception.
*/
@Test
@SuppressWarnings("resource")
public void testCreateSuccess() {
Client client = Factory.createClient(session);
String responseBody = getResource("pending_approval.json");
whenPost().thenReturn(new Response(201, responseBody, null));
CreatePaymentRequest body = createRequest();
CreatePaymentResponse response = client.merchant("merchantId").payments().create(body);
Assert.assertEquals("000002000020142549460000100001", response.getPayment().getId());
Assert.assertEquals("PENDING_APPROVAL", response.getPayment().getStatus());
}
use of com.ingenico.connect.gateway.sdk.java.Client in project connect-sdk-java by Ingenico-ePayments.
the class PaymentsClientTest method testCreateInternalServerErrorWithoutBody.
/**
* Tests that a 500 response with a JSON response with no body will throw a {@link GlobalCollectException} and not a {@link NullPointerException}.
*/
@Test
@SuppressWarnings("resource")
public void testCreateInternalServerErrorWithoutBody() {
Client client = Factory.createClient(session);
String responseBody = null;
whenPost().thenReturn(new Response(500, responseBody, Arrays.asList(new ResponseHeader("content-type", "text/html"))));
CreatePaymentRequest body = createRequest();
try {
client.merchant("merchantId").payments().create(body);
Assert.fail("Expected GlobalCollectException");
} catch (GlobalCollectException e) {
Assert.assertEquals(responseBody, e.getResponseBody());
Assert.assertNull(e.getErrorId());
Assert.assertEquals(0, e.getErrors().size());
}
}
Aggregations