| 
1 | 1 | package com.example;  | 
2 | 2 | 
 
  | 
3 |  | -import org.junit.ClassRule;  | 
4 |  | -import org.junit.runner.RunWith;  | 
5 | 3 | import org.springframework.boot.test.context.SpringBootTest;  | 
6 |  | -import org.springframework.boot.test.util.TestPropertyValues;  | 
7 |  | -import org.springframework.context.ApplicationContextInitializer;  | 
8 |  | -import org.springframework.context.ConfigurableApplicationContext;  | 
9 |  | -import org.springframework.test.context.ContextConfiguration;  | 
10 |  | -import org.springframework.test.context.junit4.SpringRunner;  | 
11 | 4 | import org.testcontainers.containers.GenericContainer;  | 
 | 5 | +import org.testcontainers.junit.jupiter.Testcontainers;  | 
12 | 6 | 
 
  | 
13 |  | -@RunWith(SpringRunner.class)  | 
14 | 7 | @SpringBootTest  | 
15 |  | -@ContextConfiguration(initializers = AbstractIntegrationTest.Initializer.class)  | 
 | 8 | +@Testcontainers(disabledWithoutDocker = true)  | 
16 | 9 | public abstract class AbstractIntegrationTest {  | 
17 | 10 | 
 
  | 
18 | 11 |     private static final String DOCKER_IMAGE = "amazon/dynamodb-local";  | 
19 | 12 |     private static final String DOCKER_TAG = "latest";  | 
20 | 13 |     private static final int EXPOSED_PORT = 8000;  | 
21 | 14 | 
 
  | 
22 |  | -    @ClassRule  | 
23 |  | -    public static GenericContainer dynamodb =  | 
24 |  | -            new GenericContainer(String.format("%s:%s", DOCKER_IMAGE, DOCKER_TAG)).withExposedPorts(EXPOSED_PORT);  | 
 | 15 | +    static {  | 
 | 16 | +        GenericContainer dynamodb =  | 
 | 17 | +                new GenericContainer(String.format("%s:%s", DOCKER_IMAGE, DOCKER_TAG)).withExposedPorts(EXPOSED_PORT);  | 
 | 18 | +        dynamodb.start();  | 
25 | 19 | 
 
  | 
26 |  | -    public static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {  | 
27 |  | -        @Override  | 
28 |  | -        public void initialize(ConfigurableApplicationContext configurableApplicationContext) {  | 
29 |  | -            String endpoint = String.format("aws.dynamo.endpoint=http://%s:%s",  | 
30 |  | -                    dynamodb.getContainerIpAddress(),  | 
31 |  | -                    dynamodb.getMappedPort(EXPOSED_PORT));  | 
32 |  | - | 
33 |  | -            TestPropertyValues.of(endpoint).applyTo(configurableApplicationContext);  | 
34 |  | -        }  | 
 | 20 | +        final String endpoint = String.format("http://%s:%s",  | 
 | 21 | +                dynamodb.getContainerIpAddress(),  | 
 | 22 | +                dynamodb.getMappedPort(EXPOSED_PORT));  | 
 | 23 | +        System.setProperty("aws.dynamo.endpoint", endpoint);  | 
35 | 24 |     }  | 
36 | 25 | }  | 
0 commit comments