1
1
package bitxon .micronaut ;
2
2
3
+ import java .util .Map ;
4
+
5
+ import com .github .tomakehurst .wiremock .WireMockServer ;
6
+ import com .github .tomakehurst .wiremock .client .WireMock ;
7
+ import com .github .tomakehurst .wiremock .core .WireMockConfiguration ;
3
8
import io .micronaut .http .client .HttpClient ;
4
9
import io .micronaut .http .client .annotation .Client ;
5
10
import io .micronaut .runtime .EmbeddedApplication ;
6
11
import io .micronaut .test .extensions .junit5 .annotation .MicronautTest ;
12
+ import io .micronaut .test .support .TestPropertyProvider ;
7
13
import jakarta .inject .Inject ;
14
+ import org .junit .jupiter .api .TestInstance ;
8
15
import org .testcontainers .junit .jupiter .Testcontainers ;
9
16
10
17
@ Testcontainers
11
18
@ MicronautTest // default environments is 'test'
12
- class AbstractMicronautTest {
19
+ @ TestInstance (TestInstance .Lifecycle .PER_CLASS )
20
+ class AbstractMicronautTest implements TestPropertyProvider {
21
+
22
+ private static final WireMockServer WIREMOCK ;
23
+
24
+ static {
25
+ WIREMOCK = new WireMockServer (WireMockConfiguration .options ()
26
+ .usingFilesUnderClasspath ("stubs" ) // Loading stubs from common-wiremock
27
+ .dynamicPort ()
28
+ );
29
+ WIREMOCK .start ();
30
+ WireMock .configureFor (WIREMOCK .port ());
31
+ }
13
32
14
33
@ Inject
15
34
private EmbeddedApplication <?> application ;
@@ -21,4 +40,10 @@ protected HttpClient client() {
21
40
return client ;
22
41
}
23
42
43
+ @ Override
44
+ public Map <String , String > getProperties () {
45
+ return Map .of (
46
+ "micronaut.http.services.exchange-client.url" , WIREMOCK .baseUrl ()
47
+ );
48
+ }
24
49
}
0 commit comments