|
1 | 1 | package com.lohika.jclub.storage; |
2 | 2 |
|
3 | | -import com.github.dockerjava.api.command.CreateContainerCmd; |
4 | | - |
5 | 3 | import org.junit.ClassRule; |
6 | | -import org.junit.Ignore; |
7 | 4 | import org.junit.Test; |
8 | 5 | import org.junit.runner.RunWith; |
9 | 6 | import org.springframework.beans.factory.annotation.Autowired; |
10 | 7 | import org.springframework.boot.test.context.SpringBootTest; |
| 8 | +import org.springframework.boot.test.util.EnvironmentTestUtils; |
| 9 | +import org.springframework.context.ApplicationContextInitializer; |
| 10 | +import org.springframework.context.ConfigurableApplicationContext; |
11 | 11 | import org.springframework.hateoas.PagedResources; |
| 12 | +import org.springframework.test.context.ContextConfiguration; |
12 | 13 | import org.springframework.test.context.junit4.SpringRunner; |
13 | 14 | import org.testcontainers.containers.GenericContainer; |
14 | | -import org.testcontainers.containers.wait.Wait; |
| 15 | +import org.testcontainers.containers.wait.LogMessageWaitStrategy; |
15 | 16 |
|
16 | 17 | import static org.hamcrest.Matchers.hasItem; |
17 | 18 | import static org.hamcrest.Matchers.is; |
18 | 19 | import static org.hamcrest.Matchers.notNullValue; |
19 | 20 | import static org.hamcrest.Matchers.nullValue; |
20 | 21 | import static org.junit.Assert.assertThat; |
21 | 22 |
|
22 | | -@Ignore |
23 | 23 | @RunWith(SpringRunner.class) |
24 | 24 | @SpringBootTest(classes = StorageServiceClientTestApplication.class) |
| 25 | +@ContextConfiguration(initializers = StorageServiceClientTest.Initializer.class) |
25 | 26 | public class StorageServiceClientTest { |
26 | 27 |
|
27 | 28 | @ClassRule |
28 | 29 | public static GenericContainer storageService = new GenericContainer("storage-service:latest") |
29 | 30 | .withExposedPorts(8091) |
30 | | - .withCreateContainerCmdModifier( |
31 | | - cmd -> ((CreateContainerCmd) cmd) |
32 | | - .withPublishAllPorts(true) |
33 | | - .withName("storage-service")) |
34 | | - .waitingFor(Wait.forListeningPort()); |
| 31 | + .waitingFor(new LogMessageWaitStrategy().withRegEx(".*Started StorageServiceApplication in.*\\s")); |
35 | 32 |
|
36 | 33 | @Autowired |
37 | 34 | private StorageServiceClient storageServiceClient; |
@@ -108,4 +105,15 @@ public void delete() { |
108 | 105 | Apartment actual = storageServiceClient.get(created.getId()); |
109 | 106 | assertThat(actual, nullValue()); |
110 | 107 | } |
| 108 | + |
| 109 | + public static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { |
| 110 | + @Override |
| 111 | + public void initialize(ConfigurableApplicationContext configurableApplicationContext) { |
| 112 | + |
| 113 | + EnvironmentTestUtils.addEnvironment("testcontainers", configurableApplicationContext.getEnvironment(), |
| 114 | + "storage-service.ribbon.servers=http://" + storageService.getContainerIpAddress() + ":" |
| 115 | + + storageService.getMappedPort(8091) + "/" |
| 116 | + ); |
| 117 | + } |
| 118 | + } |
111 | 119 | } |
0 commit comments