Search in sources :

Example 61 with Client

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;
}
Also used : MetaDataProvider(com.ingenico.connect.gateway.sdk.java.MetaDataProvider) Communicator(com.ingenico.connect.gateway.sdk.java.Communicator) Connection(com.ingenico.connect.gateway.sdk.java.Connection) TestConnection(com.ingenico.connect.gateway.sdk.java.domain.services.TestConnection) Client(com.ingenico.connect.gateway.sdk.java.Client) URI(java.net.URI) Authenticator(com.ingenico.connect.gateway.sdk.java.Authenticator) Session(com.ingenico.connect.gateway.sdk.java.Session)

Example 62 with 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());
}
Also used : CommunicationException(com.ingenico.connect.gateway.sdk.java.CommunicationException) HttpHost(org.apache.http.HttpHost) Client(com.ingenico.connect.gateway.sdk.java.Client) Test(org.junit.Test)

Example 63 with Client

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");
}
Also used : HttpHost(org.apache.http.HttpHost) NotFoundException(com.ingenico.connect.gateway.sdk.java.NotFoundException) Client(com.ingenico.connect.gateway.sdk.java.Client) Test(org.junit.Test)

Example 64 with Client

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());
}
Also used : Response(com.ingenico.connect.gateway.sdk.java.Response) CreatePaymentResponse(com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentResponse) CreatePaymentRequest(com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentRequest) Client(com.ingenico.connect.gateway.sdk.java.Client) CreatePaymentResponse(com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentResponse) Test(org.junit.Test)

Example 65 with Client

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());
    }
}
Also used : Response(com.ingenico.connect.gateway.sdk.java.Response) CreatePaymentResponse(com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentResponse) ResponseHeader(com.ingenico.connect.gateway.sdk.java.ResponseHeader) GlobalCollectException(com.ingenico.connect.gateway.sdk.java.GlobalCollectException) CreatePaymentRequest(com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentRequest) Client(com.ingenico.connect.gateway.sdk.java.Client) Test(org.junit.Test)

Aggregations

Client (com.ingenico.connect.gateway.sdk.java.Client)70 Test (org.junit.Test)35 CreatePaymentRequest (com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentRequest)19 HttpHost (org.apache.http.HttpHost)17 CreatePaymentResponse (com.ingenico.connect.gateway.sdk.java.domain.payment.CreatePaymentResponse)14 Address (com.ingenico.connect.gateway.sdk.java.domain.definitions.Address)12 AmountOfMoney (com.ingenico.connect.gateway.sdk.java.domain.definitions.AmountOfMoney)11 Response (com.ingenico.connect.gateway.sdk.java.Response)9 CallContext (com.ingenico.connect.gateway.sdk.java.CallContext)7 Customer (com.ingenico.connect.gateway.sdk.java.domain.payment.definitions.Customer)6 Order (com.ingenico.connect.gateway.sdk.java.domain.payment.definitions.Order)6 DeclinedPaymentException (com.ingenico.connect.gateway.sdk.java.DeclinedPaymentException)5 ConvertAmount (com.ingenico.connect.gateway.sdk.java.domain.services.ConvertAmount)5 HashMap (java.util.HashMap)5 ApiException (com.ingenico.connect.gateway.sdk.java.ApiException)4 Card (com.ingenico.connect.gateway.sdk.java.domain.definitions.Card)4 CompanyInformation (com.ingenico.connect.gateway.sdk.java.domain.definitions.CompanyInformation)4 TestConnection (com.ingenico.connect.gateway.sdk.java.domain.services.TestConnection)4 ConvertAmountParams (com.ingenico.connect.gateway.sdk.java.merchant.services.ConvertAmountParams)4 ArrayList (java.util.ArrayList)4