Skip to content

Commit 2444eca

Browse files
author
Markus Mertens
committed
added unit test for "text/plain" request bodies
1 parent b579e11 commit 2444eca

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/test/java/com/microsoft/graph/http/CoreHttpProviderTests.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.microsoft.graph.serializer.DefaultSerializer;
2121
import com.microsoft.graph.serializer.ISerializer;
2222

23+
import okio.Buffer;
2324
import org.junit.jupiter.api.Test;
2425

2526
import java.io.ByteArrayInputStream;
@@ -39,6 +40,7 @@
3940
import okhttp3.Request;
4041
import okhttp3.Response;
4142
import okhttp3.ResponseBody;
43+
import org.mockito.Mockito;
4244

4345
import static org.junit.jupiter.api.Assertions.assertEquals;
4446
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -49,6 +51,8 @@
4951
import static org.mockito.ArgumentMatchers.any;
5052
import static org.mockito.ArgumentMatchers.anyString;
5153
import static org.mockito.Mockito.mock;
54+
import static org.mockito.Mockito.never;
55+
import static org.mockito.Mockito.verify;
5256
import static org.mockito.Mockito.when;
5357

5458
public class CoreHttpProviderTests {
@@ -288,4 +292,34 @@ public void getHttpRequestSetsRetryOrRedirectOptionsOnNonDefaultValues() throws
288292

289293
assertNotNull(retryOptions);
290294
}
295+
296+
@Test
297+
public void getHttpRequestWithTextPlainBodyDoesNotSerializeAsJson() throws IOException {
298+
final IHttpRequest absRequest = mock(IHttpRequest.class);
299+
when(absRequest.getRequestUrl()).thenReturn(new URL("https://graph.microsoft.com/v1.0/me"));
300+
when(absRequest.getHttpMethod()).thenReturn(HttpMethod.POST);
301+
final ISerializer serializer = mock(ISerializer.class);
302+
final ILogger logger = mock(ILogger.class);
303+
304+
mProvider = new CoreHttpProvider(serializer,
305+
logger,
306+
new OkHttpClient.Builder().build());
307+
308+
// GIVEN: A "text/plain" request body
309+
HeaderOption option = new HeaderOption("Content-Type", "text/plain");
310+
when(absRequest.getHeaders()).thenReturn(Arrays.asList(option));
311+
String expectedBody = "Plain String Body";
312+
313+
//WHEN: getHttpRequest is called
314+
Request request = mProvider.getHttpRequest(absRequest, String.class, expectedBody);
315+
316+
// THEN: The serializer must not be called
317+
verify(serializer, never()).serializeObject(Mockito.any());
318+
319+
// AND: We expect the request body to contain the plain String, not serialized as Json
320+
Buffer buffer = new Buffer();
321+
request.body().writeTo(buffer);
322+
String actualRequestBody = buffer.readUtf8();
323+
assertEquals(expectedBody, actualRequestBody);
324+
}
291325
}

0 commit comments

Comments
 (0)