8000 Clean e2e tests · PawelPacholek/java-gcp-pubsub@d1ffd3c · GitHub
[go: up one dir, main page]

Skip to content

Commit d1ffd3c

Browse files
committed
Clean e2e tests
1 parent f9e6176 commit d1ffd3c

File tree

1 file changed

+42
-15
lines changed

1 file changed

+42
-15
lines changed

e-2-e-tests/src/test/java/com/e2e_tests/E2ETests.java

Lines changed: 42 additions & 15 deletions
103
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@
66
import com.e2e_tests.pubsub_emulator.PubSubEmulatorInitializer;
77
import com.google.cloud.spring.pubsub.PubSubAdmin;
88
import com.google.cloud.spring.pubsub.core.PubSubTemplate;
9+
import org.apache.commons.lang3.ThreadUtils;
910
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
1011
import org.apache.hc.client5.http.impl.classic.HttpClients;
1112
import org.apache.hc.core5.http.ClassicHttpRequest;
1213
import org.apache.hc.core5.http.ClassicHttpResponse;
14+
import org.apache.hc.core5.http.ParseException;
1315
import org.apache.hc.core5.http.impl.io.DefaultClassicHttpRequestFactory;
16+
import org.apache.hc.core5.http.io.entity.EntityUtils;
1417
import org.apache.hc.core5.http.io.entity.StringEntity;
1518
import org.junit.jupiter.api.BeforeEach;
1619
import org.junit.jupiter.api.Test;
@@ -23,6 +26,7 @@
2326

2427
import java.io.IOException;
2528
import java.io.UncheckedIOException;
29+
import java.time.Duration;
2630

2731
//@AutoConfigureMockMvc
2832
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = E2ETests.App.class)
@@ -67,37 +71,52 @@ public void preparePubsubEmulator() {
6771

6872
@Test
6973
public void simpleEndToEndTest() {
70-
7174
GenericContainer mainOwnerService = MainOwnerService.startContainer();
7275
GenericContainer labelOwnerService = LabelOwnerService.startContainer();
73-
7476
try {
75-
7677
int mainOwnerServiceMappedPort = mainOwnerService.getMappedPort(8080);
77-
7878
Long ownerId = 7L;
7979

80-
String body = """
81-
{"id":%s,"name":"name1","address":"address2","phone":"phone3","email":"email4"}""".formatted(ownerId);
82-
String uploadUri = "http://localhost:%s/upload-initial-owner".formatted(mainOwnerServiceMappedPort);
83-
ClassicHttpRequest uploadRequest = DefaultClassicHttpRequestFactory.INSTANCE.newHttpRequest("POST", uploadUri);
84-
uploadRequest.setEntity(new StringEntity(body));
85-
uploadRequest.setHeader("Content-Type", "application/json");
86-
80+
ClassicHttpRequest uploadRequest = createUploadRequest(ownerId, mainOwnerServiceMappedPort);
8781
ClassicHttpResponse uploadResponse = sendRequest(uploadRequest);
88-
System.out.println(uploadResponse);
82+
String uploadResponseBody = getBody(uploadResponse);
83+
System.out.println(uploadResponseBody);
8984

90-
String fetchUri = "http://localhost:%s/fetch-labeled-owner/%s".formatted(mainOwnerServiceMappedPort, ownerId);
91-
ClassicHttpRequest fetchRequest = DefaultClassicHttpRequestFactory.INSTANCE.newHttpRequest("GET", fetchUri);
85+
sleep(10);
9286

87+
ClassicHttpRequest fetchRequest = createFetchRequest(ownerId, mainOwnerServiceMappedPort);
9388
ClassicHttpResponse fetchResponse = sendRequest(fetchRequest);
94-
System.out.println(fetchResponse);
89+
String fetchResponseBody = getBody(fetchResponse);
90+
System.out.println(fetchResponseBody);
9591
} finally {
9692
mainOwnerService.stop();
9793
labelOwnerService.stop();
9894
}
9995
}
10096

97+
private ClassicHttpRequest createUploadRequest(Long ownerId, int mainOwnerServiceMappedPort) {
98+
String body = """
99+
{"id":%s,"name":"name1","address":"address2","phone":"phone3","email":"email4"}""".formatted(ownerId);
100+
String uploadUri = "http://localhost:%s/upload-initial-owner".formatted(mainOwnerServiceMappedPort);
101+
ClassicHttpRequest uploadRequest = DefaultClassicHttpRequestFactory.INSTANCE.newHttpRequest("POST", uploadUri);
102+
uploadRequest.setEntity(new StringEntity(body));
+
uploadRequest.setHeader("Content-Type", "application/json");
104+
return uploadRequest;
105+
}
106+
107+
private ClassicHttpRequest createFetchRequest(Long ownerId, int mainOwnerServiceMappedPort) {
108+
String fetchUri = "http://localhost:%s/fetch-labeled-owner/%s".formatted(mainOwnerServiceMappedPort, ownerId);
109+
return DefaultClassicHttpRequestFactory.INSTANCE.newHttpRequest("GET", fetchUri);
110+
}
111+
112+
private void sleep(int seconds) {
113+
try {
114+
ThreadUtils.sleep(Duration.ofSeconds(seconds));
115+
} catch (InterruptedException e) {
116+
throw new RuntimeException(e);
117+
}
118+
}
119+
101120
private ClassicHttpResponse sendRequest(ClassicHttpRequest apacheRequest) {
102121
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
103122
return httpClient.execute(apacheRequest, r -> r);
@@ -106,5 +125,13 @@ private ClassicHttpResponse sendRequest(ClassicHttpRequest apacheRequest) {
106125
}
107126
}
108127

128+
private String getBody(ClassicHttpResponse response) {
129+
try {
130+
return EntityUtils.toString(response.getEntity());
131+
} catch (IOException | ParseException e) {
132+
throw new RuntimeException(e);
133+
}
134+
}
135+
109136

110137
}

0 commit comments

Comments
 (0)
0