1717
1818package org .keycloak .it .cli .dist ;
1919
20+ import java .io .File ;
2021import java .io .IOException ;
22+ import java .nio .file .Files ;
2123import java .nio .file .Path ;
2224import java .util .function .Consumer ;
2325import org .junit .jupiter .api .Test ;
3032import org .keycloak .it .utils .KeycloakDistribution ;
3133import org .keycloak .it .utils .RawKeycloakDistribution ;
3234
35+ import com .fasterxml .jackson .databind .ObjectMapper ;
36+ import com .fasterxml .jackson .databind .node .ObjectNode ;
37+
3338import io .quarkus .deployment .util .FileUtil ;
3439import io .quarkus .test .junit .main .Launch ;
3540import io .quarkus .test .junit .main .LaunchResult ;
@@ -45,6 +50,21 @@ void testImport(LaunchResult result) {
4550 CLIResult cliResult = (CLIResult ) result ;
4651 cliResult .assertMessage ("Realm 'quickstart-realm' imported" );
4752 }
53+
54+ @ Test
55+ @ BeforeStartDistribution (CreateRealmConfigurationFile .class )
56+ void testMultipleImport (KeycloakDistribution dist ) throws IOException {
57+ RawKeycloakDistribution rawDist = dist .unwrap (RawKeycloakDistribution .class );
58+ Path dir = rawDist .getDistPath ().resolve ("data" ).resolve ("import" );
59+
60+ // add another realm
61+ Files .write (dir .resolve ("realm2.json" ), Files .readAllLines (dir .resolve ("realm.json" )).stream ()
62+ .map (s -> s .replace ("quickstart-realm" , "other-realm" )).toList ());
63+
64+ CLIResult cliResult = dist .run ("start-dev" , "--import-realm" );
65+ cliResult .assertMessage ("Realm 'quickstart-realm' imported" );
66+ cliResult .assertMessage ("Realm 'other-realm' imported" );
67+ }
4868
4969 @ Test
5070 @ BeforeStartDistribution (CreateRealmConfigurationFileAndDir .class )
@@ -115,7 +135,7 @@ void testImportFromDirCreatedByExport(KeycloakDistribution dist) throws IOExcept
115135 result .assertMessage ("Realm 'quickstart-realm' imported" );
116136 result .assertNoMessage ("Not importing realm master from file" );
117137 }
118-
138+
119139 public static class CreateRealmConfigurationFile implements Consumer <KeycloakDistribution > {
120140
121141 @ Override
0 commit comments