use of com.linecorp.armeria.common.AggregatedHttpRequest in project zipkin by openzipkin.
the class ElasticsearchSpanStoreTest method requestLimitedTo2DaysOfIndices_singleTypeIndex.
void requestLimitedTo2DaysOfIndices_singleTypeIndex() {
long today = TestObjects.midnightUTC(System.currentTimeMillis());
long yesterday = today - TimeUnit.DAYS.toMillis(1);
// 24 hrs ago always will fall into 2 days (ex. if it is 4:00pm, 24hrs ago is a different day)
String indexesToSearch = "" + storage.indexNameFormatter().formatTypeAndTimestamp(TYPE_SPAN, yesterday) + "," + storage.indexNameFormatter().formatTypeAndTimestamp(TYPE_SPAN, today);
AggregatedHttpRequest request = server.takeRequest().request();
assertThat(request.path()).startsWith("/" + indexesToSearch + "/_search");
}
use of com.linecorp.armeria.common.AggregatedHttpRequest in project zipkin by openzipkin.
the class ElasticsearchSpanConsumerTest method addsPipelineId.
@Test
void addsPipelineId() throws Exception {
storage.close();
storage = ElasticsearchStorage.newBuilder(() -> WebClient.of(server.httpUri())).pipeline("zipkin").build();
ensureIndexTemplate();
server.enqueue(SUCCESS_RESPONSE);
accept(Span.newBuilder().traceId("1").id("1").name("foo").build());
AggregatedHttpRequest request = server.takeRequest().request();
assertThat(request.path()).isEqualTo("/_bulk?pipeline=zipkin");
}
use of com.linecorp.armeria.common.AggregatedHttpRequest in project zipkin by openzipkin.
the class HttpCallTest method streamingContent.
@Test
void streamingContent() throws Exception {
server.enqueue(SUCCESS_RESPONSE);
HttpCall.RequestSupplier supplier = new HttpCall.RequestSupplier() {
@Override
public RequestHeaders headers() {
return RequestHeaders.of(HttpMethod.POST, "/");
}
@Override
public void writeBody(HttpCall.RequestStream requestStream) {
requestStream.tryWrite(HttpData.ofUtf8("hello"));
requestStream.tryWrite(HttpData.ofUtf8(" world"));
}
};
http.newCall(supplier, NULL, "test").execute();
AggregatedHttpRequest request = server.takeRequest().request();
assertThat(request.method()).isEqualTo(HttpMethod.POST);
assertThat(request.path()).isEqualTo("/");
assertThat(request.contentUtf8()).isEqualTo("hello world");
}
use of com.linecorp.armeria.common.AggregatedHttpRequest in project curiostack by curioswitch.
the class ArmeriaSdkHttpClientIntegrationTest method normal.
@Test
void normal() {
server.enqueue(HttpResponse.of(HttpStatus.OK));
GetItemResponse response = dynamoDbAsync.getItem(GetItemRequest.builder().tableName("test").key(ImmutableMap.of()).build()).join();
assertThat(response.sdkHttpResponse().isSuccessful()).isTrue();
AggregatedHttpRequest request = server.takeRequest().request();
assertThat(request.headers().get(HttpHeaderNames.USER_AGENT)).contains("http/ArmeriaAsync");
}
use of com.linecorp.armeria.common.AggregatedHttpRequest in project curiostack by curioswitch.
the class ArmeriaSdkHttpClientTest method converts_success.
@Test
void converts_success() {
StreamMessage<ByteBuffer> requestStream = StreamMessage.of(ByteBuffer.wrap("meow".getBytes(StandardCharsets.UTF_8)), ByteBuffer.wrap("woof".getBytes(StandardCharsets.UTF_8)));
AtomicReference<SdkHttpResponse> responseHeaders = new AtomicReference<>();
AtomicReference<Throwable> responseError = new AtomicReference<>();
AtomicReference<Throwable> responseSubscriberError = new AtomicReference<>();
AtomicBoolean responseComplete = new AtomicBoolean();
List<ByteBuffer> responsePayloads = new ArrayList<>();
AsyncExecuteRequest request = AsyncExecuteRequest.builder().request(SdkHttpRequest.builder().protocol("https").method(SdkHttpMethod.POST).host("github.com").appendHeader("X-Animals", "cat").appendHeader("X-Animals", "dog").appendHeader("Content-Type", "application/json").encodedPath("/foo").appendRawQueryParameter("bar", "baz").build()).responseHandler(new SdkAsyncHttpResponseHandler() {
@Override
public void onHeaders(SdkHttpResponse headers) {
responseHeaders.set(headers);
}
@Override
public void onStream(Publisher<ByteBuffer> stream) {
stream.subscribe(new Subscriber<ByteBuffer>() {
@Override
public void onSubscribe(Subscription s) {
s.request(Long.MAX_VALUE);
}
@Override
public void onNext(ByteBuffer byteBuffer) {
responsePayloads.add(byteBuffer);
}
@Override
public void onError(Throwable t) {
responseSubscriberError.set(t);
}
@Override
public void onComplete() {
responseComplete.set(true);
}
});
}
@Override
public void onError(Throwable error) {
responseError.set(error);
}
}).requestContentPublisher(new SdkHttpContentPublisher() {
@Override
public Optional<Long> contentLength() {
return Optional.of((long) ("body1" + "body2").length());
}
@Override
public void subscribe(Subscriber<? super ByteBuffer> s) {
requestStream.subscribe(s);
}
}).fullDuplex(false).build();
AtomicReference<AggregatedHttpRequest> aggregatedRequest = new AtomicReference<>();
when(webClient.execute(any(HttpRequest.class))).thenAnswer((Answer<HttpResponse>) invocation -> {
HttpRequest httpRequest = invocation.getArgument(0);
aggregatedRequest.set(httpRequest.aggregate().join());
return HttpResponse.of(ResponseHeaders.of(HttpStatus.OK, HttpHeaderNames.CONTENT_TYPE, "application/json", HttpHeaderNames.of("X-Countries"), "Japan", HttpHeaderNames.of("X-Countries"), "US"), HttpData.ofUtf8("purr"), HttpData.ofUtf8("growl"));
});
CompletableFuture<Void> responseFuture = client.execute(request);
assertThat(responseFuture.join()).isNull();
assertThat(responseHeaders.get()).satisfies(headers -> {
assertThat(headers.statusCode()).isEqualTo(HttpStatus.OK.code());
assertThat(headers.statusText()).hasValue(HttpStatus.OK.reasonPhrase());
assertThat(headers.headers()).containsEntry("content-type", ImmutableList.of("application/json")).containsEntry("x-countries", ImmutableList.of("Japan", "US"));
});
assertThat(responsePayloads).extracting(buf -> Unpooled.wrappedBuffer(buf).toString(StandardCharsets.UTF_8)).containsExactly("purr", "growl");
assertThat(responseError.get()).isNull();
assertThat(responseSubscriberError.get()).isNull();
}
Aggregations