22
33import static com .baeldung .client .Consts .APPLICATION_PORT ;
44import static org .hamcrest .CoreMatchers .equalTo ;
5+ import static org .junit .Assert .assertNotNull ;
56import static org .junit .Assert .assertThat ;
67import static org .junit .Assert .fail ;
78
89import java .io .IOException ;
910
11+ import org .junit .Before ;
12+ import org .junit .Test ;
13+
1014import okhttp3 .Call ;
1115import okhttp3 .Callback ;
1216import okhttp3 .HttpUrl ;
1317import okhttp3 .OkHttpClient ;
1418import okhttp3 .Request ;
1519import okhttp3 .Response ;
1620
17- import org .junit .Before ;
18- import org .junit .Test ;
19-
2021/**
2122 * Execute <code>spring-rest</code> module before running this live test
2223 */
@@ -34,22 +35,59 @@ public void init() {
3435
3536 @ Test
3637 public void whenGetRequest_thenCorrect () throws IOException {
37- final Request request = new Request .Builder ().url (BASE_URL + "/date" ).build ();
38+ final Request request = new Request .Builder ().url (BASE_URL + "/date" )
39+ .build ();
3840
3941 final Call call = client .newCall (request );
4042 final Response response = call .execute ();
4143
4244 assertThat (response .code (), equalTo (200 ));
4345 }
4446
47+ @ Test
48+ public void whenResponseBodyReadOnce_thenNotNull () throws IOException {
49+ OkHttpClient client = new OkHttpClient .Builder ().build ();
50+
51+ Request request = new Request .Builder ().url (BASE_URL + "/date" )
52+ .build ();
53+
54+ try (Response response = client .newCall (request )
55+ .execute ()) {
56+ String first = response .body ()
57+ .string ();
58+ assertNotNull (first );
59+ }
60+ }
61+
62+ @ Test (expected = IllegalStateException .class )
63+ public void whenResponseBodyReadTwice_thenThrows () throws IOException {
64+ OkHttpClient client = new OkHttpClient .Builder ().build ();
65+
66+ Request request = new Request .Builder ().url (BASE_URL + "/date" )
67+ .build ();
68+
69+ try (Response response = client .newCall (request )
70+ .execute ()) {
71+ String first = response .body ()
72+ .string ();
73+ assertNotNull (first );
74+
75+ String second = response .body ()
76+ .string (); // throws IllegalStateException
77+ }
78+ }
79+
4580 @ Test
4681 public void whenGetRequestWithQueryParameter_thenCorrect () throws IOException {
47- final HttpUrl .Builder urlBuilder = HttpUrl .parse (BASE_URL + "/ex/bars" ).newBuilder ();
82+ final HttpUrl .Builder urlBuilder = HttpUrl .parse (BASE_URL + "/ex/bars" )
83+ .newBuilder ();
4884 urlBuilder .addQueryParameter ("id" , "1" );
4985
50- final String url = urlBuilder .build ().toString ();
86+ final String url = urlBuilder .build ()
87+ .toString ();
5188
52- final Request request = new Request .Builder ().url (url ).build ();
89+ final Request request = new Request .Builder ().url (url )
90+ .build ();
5391
5492 final Call call = client .newCall (request );
5593 final Response response = call .execute ();
@@ -59,7 +97,8 @@ public void whenGetRequestWithQueryParameter_thenCorrect() throws IOException {
5997
6098 @ Test
6199 public void whenAsynchronousGetRequest_thenCorrect () throws InterruptedException {
62- final Request request = new Request .Builder ().url (BASE_URL + "/date" ).build ();
100+ final Request request = new Request .Builder ().url (BASE_URL + "/date" )
101+ .build ();
63102
64103 final Call call = client .newCall (request );
65104
0 commit comments