11package com .coreoz .plume .admin ;
22
3+ import java .io .IOException ;
4+
5+ import org .assertj .core .internal .bytebuddy .utility .RandomString ;
6+ import org .junit .Assert ;
7+ import org .junit .Test ;
8+
39import com .coreoz .plume .admin .services .logapi .LogInterceptApiBean ;
410import com .google .common .collect .ImmutableList ;
11+
512import lombok .SneakyThrows ;
613import okhttp3 .MediaType ;
714import okhttp3 .Protocol ;
815import okhttp3 .Request ;
16+ import okhttp3 .Request .Builder ;
917import okhttp3 .RequestBody ;
1018import okhttp3 .Response ;
1119import okhttp3 .ResponseBody ;
1220import okio .Buffer ;
13- import org .assertj .core .internal .bytebuddy .utility .RandomString ;
14- import org .junit .Assert ;
15- import org .junit .Test ;
16-
17- import java .io .IOException ;
1821
1922public class OkHttpLogEntryTransformerTest {
2023
@@ -154,6 +157,22 @@ public void transformer_must_not_fail_if_limit_superior_than_body_length() {
154157 Assert .assertEquals (bodyResponse , transformedTrace .getBodyResponse ());
155158 }
156159
160+ @ Test
161+ public void transformer_must_not_fail_if_body_is_empty () {
162+ int limit = 100 ;
163+ LogEntryTransformer transformer = LogEntryTransformer .limitBodySizeTransformer (limit );
164+ Request request = generatePostRequest ("/hello/world" , 0 );
165+ Response response = generateResponse (request , "header" , "value" , 0 );
166+
167+ LogInterceptApiBean generatedTrace = generatedTrace (request , response );
168+ String bodyRequest = generatedTrace .getBodyRequest ();
169+ String bodyResponse = generatedTrace .getBodyResponse ();
170+
171+ LogInterceptApiBean transformedTrace = transformer .transform (request , response , generatedTrace );
172+ Assert .assertEquals (bodyRequest , transformedTrace .getBodyRequest ());
173+ Assert .assertEquals (bodyResponse , transformedTrace .getBodyResponse ());
174+ }
175+
157176 @ Test
158177 public void transformer_must_apply_second_transformer () {
159178 int limit = 100 ;
@@ -175,14 +194,22 @@ public void transformer_must_apply_second_transformer() {
175194 }
176195
177196 private static Request generatePostRequest (String endpoint , int length ) {
197+ Builder request = new Request .Builder ().url ("https://test.coco.com" + endpoint );
198+ if (length == 0 ) {
199+ return request .get ().build ();
200+ }
178201 RequestBody body = RequestBody .create (RandomString .make (length ), MediaType .parse ("text/plain" ));
179- return new Request . Builder (). post (body ). url ( "https://test.coco.com" + endpoint ).build ();
202+ return request . post (body ).build ();
180203 }
181204
182205 private static Response generateResponse (Request request , String headerName , String headerValue , int length ) {
206+ okhttp3 .Response .Builder response = new Response .Builder ().header (headerName , headerValue ).request (request ).code (200 )
207+ .protocol (Protocol .HTTP_1_1 ).message ("" );
208+ if (length == 0 ) {
209+ return response .build ();
210+ }
183211 ResponseBody body = ResponseBody .create (RandomString .make (length ), MediaType .parse ("text/plain" ));
184- return new Response .Builder ().body (body ).header (headerName , headerValue ).request (request ).code (200 )
185- .protocol (Protocol .HTTP_1_1 ).message ("" ).build ();
212+ return response .body (body ).build ();
186213 }
187214
188215 @ SneakyThrows
@@ -192,7 +219,7 @@ private static LogInterceptApiBean generatedTrace(Request request, Response resp
192219 request .method (),
193220 response .code (),
194221 requestBodyToBuffer (request .body ()),
195- response .body ().string (),
222+ response .body () == null ? null : response . body () .string (),
196223 ImmutableList .of (),
197224 ImmutableList .of (),
198225 "TEST"
0 commit comments