use of com.hotels.styx.client.connectionpool.ConnectionPool in project styx by ExpediaGroup.
the class DashboardDataSupplierTest method pool.
private ConnectionPool pool(Origin origin) {
ConnectionPool pool = mock(ConnectionPool.class);
when(pool.getOrigin()).thenReturn(origin);
return pool;
}
use of com.hotels.styx.client.connectionpool.ConnectionPool in project styx by ExpediaGroup.
the class OriginsInventoryTest method stopsMonitoringAndUnregistersWhenClosed.
@Test
public void stopsMonitoringAndUnregistersWhenClosed() {
ConnectionPool.Factory connectionFactory = mock(ConnectionPool.Factory.class);
ConnectionPool pool1 = mock(ConnectionPool.class);
when(pool1.getOrigin()).thenReturn(ORIGIN_1);
ConnectionPool pool2 = mock(ConnectionPool.class);
when(pool2.getOrigin()).thenReturn(ORIGIN_2);
when(connectionFactory.create(eq(ORIGIN_1))).thenReturn(pool1);
when(connectionFactory.create(eq(ORIGIN_2))).thenReturn(pool2);
inventory = new OriginsInventory(eventBus, GENERIC_APP, monitor, connectionFactory, hostClientFactory, new CentralisedMetrics(meterRegistry));
inventory.setOrigins(ORIGIN_1, ORIGIN_2);
inventory.close();
verify(monitor).stopMonitoring(eq(Set.of(ORIGIN_1)));
verify(monitor).stopMonitoring(eq(Set.of(ORIGIN_2)));
assertThat(gaugeValue("generic-app", "app-01"), isAbsent());
assertThat(gaugeValue("generic-app", "app-02"), isAbsent());
verify(pool1).close();
verify(pool2).close();
verify(eventBus, times(2)).post(any(OriginsSnapshot.class));
verify(eventBus).unregister(eq(inventory));
}
use of com.hotels.styx.client.connectionpool.ConnectionPool in project styx by ExpediaGroup.
the class OriginsInventoryTest method shutsConnectionPoolForModifiedOrigin.
@Test
public void shutsConnectionPoolForModifiedOrigin() {
Origin originV1 = newOriginBuilder("acme01.com", 80).applicationId(GENERIC_APP).id("acme-01").build();
Origin originV2 = newOriginBuilder("acme02.com", 80).applicationId(GENERIC_APP).id("acme-01").build();
ConnectionPool.Factory connectionFactory = mock(ConnectionPool.Factory.class);
ConnectionPool pool1 = mock(ConnectionPool.class);
ConnectionPool pool2 = mock(ConnectionPool.class);
when(connectionFactory.create(eq(originV1))).thenReturn(pool1);
when(connectionFactory.create(eq(originV2))).thenReturn(pool2);
inventory = new OriginsInventory(eventBus, GENERIC_APP, monitor, connectionFactory, hostClientFactory, new CentralisedMetrics(meterRegistry));
inventory.setOrigins(originV1);
verify(connectionFactory).create(eq(originV1));
inventory.setOrigins(originV2);
verify(connectionFactory).create(eq(originV2));
verify(pool1).close();
}
use of com.hotels.styx.client.connectionpool.ConnectionPool in project styx by ExpediaGroup.
the class StyxHostHttpClientTest method terminatesConnectionDueToUnsubscribedBody.
@Test
public void terminatesConnectionDueToUnsubscribedBody() {
TestPublisher<Buffer> testPublisher = TestPublisher.create();
Connection connection = mockConnection(just(LiveHttpResponse.response(OK).body(new ByteStream(testPublisher)).build()));
ConnectionPool pool = mockPool(connection);
Context context = mockContext();
AtomicReference<LiveHttpResponse> receivedResponse = new AtomicReference<>();
StyxHostHttpClient hostClient = new StyxHostHttpClient(pool);
StepVerifier.create(hostClient.sendRequest(request, context)).consumeNextWith(receivedResponse::set).expectComplete().verify();
StepVerifier.create(receivedResponse.get().body()).thenCancel().verify();
verify(pool).closeConnection(any(Connection.class));
verify(context).add(ORIGINID_CONTEXT_KEY, Id.id("mockorigin"));
}
use of com.hotels.styx.client.connectionpool.ConnectionPool in project styx by ExpediaGroup.
the class StyxHostHttpClientTest method mockPool.
ConnectionPool mockPool(Connection connection) {
ConnectionPool pool = mock(ConnectionPool.class);
when(pool.borrowConnection()).thenReturn(Flux.just(connection));
Origin origin = mockOrigin("mockorigin");
when(pool.getOrigin()).thenReturn(origin);
return pool;
}
Aggregations