11package io .quarkus .redis .devservices .continuoustesting .it ;
22
3+ import static io .restassured .RestAssured .when ;
4+ import static org .hamcrest .Matchers .is ;
35import static org .junit .jupiter .api .Assertions .assertEquals ;
6+ import static org .junit .jupiter .api .Assertions .assertFalse ;
47import static org .junit .jupiter .api .Assertions .assertTrue ;
58
69import java .util .ArrayList ;
2225import io .quarkus .redis .devservices .it .PlainQuarkusTest ;
2326import io .quarkus .test .ContinuousTestingTestUtils ;
2427import io .quarkus .test .QuarkusDevModeTest ;
28+ import io .quarkus .test .devservices .redis .TestResource ;
2529
2630public class DevServicesRedisContinuousTestingTest {
2731
@@ -37,7 +41,7 @@ public class DevServicesRedisContinuousTestingTest {
3741 @ RegisterExtension
3842 public static QuarkusDevModeTest test = new QuarkusDevModeTest ()
3943 .setArchiveProducer (() -> ShrinkWrap .create (JavaArchive .class )
40- .addClasses ()
44+ .addClasses (TestResource . class )
4145 .addAsResource (new StringAsset (ContinuousTestingTestUtils .appProperties ("" )),
4246 "application.properties" ))
4347 .setTestArchiveProducer (() -> ShrinkWrap .create (JavaArchive .class ).addClass (PlainQuarkusTest .class ));
@@ -59,6 +63,33 @@ public void testContinuousTestingDisablesDevServicesWhenPropertiesChange() {
5963 // We could check the container goes away, but we'd have to check slowly, because ryuk can be slow
6064 }
6165
66+ @ Test
67+ public void testDevModeServiceConfigRefresh () {
68+ List <Container > started = getRedisContainers ();
69+ ping ();
70+
71+ assertFalse (started .isEmpty ());
72+ Container container = started .get (0 );
73+ assertTrue (Arrays .stream (container .getPorts ()).noneMatch (p -> p .getPublicPort () == 6377 ),
74+ "Expected random port 6377, but got: " + Arrays .toString (container .getPorts ()));
75+
76+ test .modifyResourceFile ("application.properties" ,
77+ s -> ContinuousTestingTestUtils .appProperties ("quarkus.redis.devservices.port=6377" ));
78+
79+ ping ();
80+ List <Container > newContainers = getRedisContainersExcludingExisting (started );
81+ assertEquals (1 , newContainers .size ()); // this can be wrong
82+ Container newContainer = newContainers .get (0 );
83+ assertTrue (Arrays .stream (newContainer .getPorts ()).anyMatch (p -> p .getPublicPort () == 6377 ),
84+ "Expected port 6377, but got: " + Arrays .toString (newContainer .getPorts ()));
85+ }
86+
87+ void ping () {
88+ when ().get ("/ping" ).then ()
89+ .statusCode (200 )
90+ .body (is ("PONG" ));
91+ }
92+
6293 @ Test
6394 public void testContinuousTestingReusesInstanceWhenPropertiesAreNotChanged () {
6495
0 commit comments