Fixed the Port Already in Use Issue

This commit is contained in:
Ali Dehghani 2019-11-02 18:47:30 +03:30
parent d47ea19834
commit 947e04af9d
3 changed files with 22 additions and 19 deletions

View File

@ -1,11 +1,7 @@
package com.baeldung.protobuf; package com.baeldung.protobuf;
import static org.hamcrest.CoreMatchers.containsString; import com.baeldung.protobuf.BaeldungTraining.Course;
import static org.junit.Assert.assertThat; import com.googlecode.protobuf.format.JsonFormat;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
@ -15,33 +11,38 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.baeldung.protobuf.BaeldungTraining.Course; import java.io.IOException;
import com.googlecode.protobuf.format.JsonFormat; import java.io.InputStream;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertThat;
@DirtiesContext @DirtiesContext
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.DEFINED_PORT) @SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class ApplicationIntegrationTest { public class ApplicationIntegrationTest {
private static final String COURSE1_URL = "http://localhost:8080/courses/1";
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
@LocalServerPort
private int port;
@Test @Test
public void whenUsingRestTemplate_thenSucceed() { public void whenUsingRestTemplate_thenSucceed() {
ResponseEntity<Course> course = restTemplate.getForEntity(COURSE1_URL, Course.class); ResponseEntity<Course> course = restTemplate.getForEntity(getUrl(), Course.class);
assertResponse(course.toString()); assertResponse(course.toString());
} }
@Test @Test
public void whenUsingHttpClient_thenSucceed() throws IOException { public void whenUsingHttpClient_thenSucceed() throws IOException {
InputStream responseStream = executeHttpRequest(COURSE1_URL); InputStream responseStream = executeHttpRequest(getUrl());
String jsonOutput = convertProtobufMessageStreamToJsonString(responseStream); String jsonOutput = convertProtobufMessageStreamToJsonString(responseStream);
assertResponse(jsonOutput); assertResponse(jsonOutput);
} }
@ -74,4 +75,8 @@ public class ApplicationIntegrationTest {
assertThat(response, containsString("number")); assertThat(response, containsString("number"));
assertThat(response, containsString("type")); assertThat(response, containsString("type"));
} }
private String getUrl() {
return "http://localhost:" + port + "/courses/1";
}
} }

View File

@ -1,16 +1,15 @@
package org.baeldung; package org.baeldung;
import com.baeldung.protobuf.Application;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import com.baeldung.protobuf.Application;
@DirtiesContext @DirtiesContext
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SpringContextIntegrationTest { public class SpringContextIntegrationTest {
@Test @Test

View File

@ -1,16 +1,15 @@
package org.baeldung; package org.baeldung;
import com.baeldung.protobuf.Application;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import com.baeldung.protobuf.Application;
@DirtiesContext @DirtiesContext
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SpringContextTest { public class SpringContextTest {
@Test @Test