Skip to content

Commit d57d397

Browse files
author
matthaios.stavrou
committed
Add inline configuration support to QuarkusUnitTest
1 parent 5fe1704 commit d57d397

File tree

8 files changed

+62
-6
lines changed

8 files changed

+62
-6
lines changed

extensions/hibernate-reactive/deployment/src/test/java/io/quarkus/hibernate/reactive/compatibility/ORMReactiveCompatbilityDefaultOnlyReactiveDisabledBlockingSessionUnitTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public class ORMReactiveCompatbilityDefaultOnlyReactiveDisabledBlockingSessionUn
2323
.addAsResource("complexMultilineImports.sql", "import.sql"))
2424
.setForcedDependencies(List.of(
2525
Dependency.of("io.quarkus", "quarkus-jdbc-postgresql-deployment", Version.getVersion())))
26-
.withConfigurationResource("application-unittest-onlyreactive.properties")
2726
.overrideConfigKey("quarkus.hibernate-orm.schema-management.strategy", SCHEMA_MANAGEMENT_STRATEGY)
2827
.overrideConfigKey("quarkus.hibernate-orm.blocking", "false")
2928
.overrideConfigKey("quarkus.datasource.reactive", "true")

extensions/hibernate-reactive/deployment/src/test/java/io/quarkus/hibernate/reactive/compatibility/ORMReactiveCompatbilityDefaultOnlyReactiveUnitTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public class ORMReactiveCompatbilityDefaultOnlyReactiveUnitTest extends Compatib
1616
.withApplicationRoot((jar) -> jar
1717
.addClasses(Hero.class)
1818
.addAsResource("complexMultilineImports.sql", "import.sql"))
19-
.withConfigurationResource("application-unittest-onlyreactive.properties")
2019
.overrideConfigKey("quarkus.hibernate-orm.schema-management.strategy", SCHEMA_MANAGEMENT_STRATEGY)
2120
.overrideConfigKey("quarkus.datasource.reactive", "true")
2221
.overrideConfigKey("quarkus.datasource.db-kind", POSTGRES_KIND)

extensions/hibernate-reactive/deployment/src/test/java/io/quarkus/hibernate/reactive/compatibility/ORMReactiveCompatbilityNamedDataSourceReactiveUnitTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public class ORMReactiveCompatbilityNamedDataSourceReactiveUnitTest extends Comp
2121
.withApplicationRoot((jar) -> jar
2222
.addClasses(Hero.class)
2323
.addAsResource("complexMultilineImports.sql", "import.sql"))
24-
.withConfigurationResource("application-unittest-onlyreactive-named.properties")
2524
.overrideConfigKey("quarkus.hibernate-orm.schema-management.strategy", SCHEMA_MANAGEMENT_STRATEGY)
2625
.overrideConfigKey("quarkus.hibernate-orm.datasource", "named-datasource")
2726
.overrideConfigKey("quarkus.datasource.\"named-datasource\".reactive", "true")

extensions/hibernate-reactive/deployment/src/test/java/io/quarkus/hibernate/reactive/compatibility/ORMReactiveCompatbilityOnlyReactiveJDBCDisabledUnitTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public class ORMReactiveCompatbilityOnlyReactiveJDBCDisabledUnitTest extends Com
2323
.addAsResource("complexMultilineImports.sql", "import.sql"))
2424
.setForcedDependencies(List.of(
2525
Dependency.of("io.quarkus", "quarkus-jdbc-postgresql-deployment", Version.getVersion())))
26-
.withConfigurationResource("application-unittest-onlyreactive.properties")
2726
.overrideConfigKey("quarkus.hibernate-orm.schema-management.strategy", SCHEMA_MANAGEMENT_STRATEGY)
2827
.overrideConfigKey("quarkus.datasource.jdbc", "false")
2928
.overrideConfigKey("quarkus.datasource.reactive", "true")

extensions/hibernate-reactive/deployment/src/test/resources/application-unittest-onlyreactive-named.properties

Lines changed: 0 additions & 1 deletion
This file was deleted.

extensions/hibernate-reactive/deployment/src/test/resources/application-unittest-onlyreactive.properties

Lines changed: 0 additions & 1 deletion
This file was deleted.

test-framework/junit5-internal/src/main/java/io/quarkus/test/QuarkusUnitTest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,40 @@ public QuarkusUnitTest withConfigurationResource(String resourceName) {
906906
return this;
907907
}
908908

909+
/**
910+
* Adds configuration properties using a text block with "key=value" lines.
911+
* Blank lines and lines starting with '#' are ignored.
912+
*
913+
* Example:
914+
* .withConfiguration("""
915+
* quarkus.datasource.db-kind=postgresql
916+
* quarkus.datasource.username=user
917+
* quarkus.datasource.password=pass
918+
* """)
919+
*
920+
* @param configBlock text block with configuration lines
921+
* @return self
922+
*/
923+
public QuarkusUnitTest withConfiguration(String configBlock) {
924+
Objects.requireNonNull(configBlock, "Configuration text block must not be null");
925+
926+
configBlock.lines()
927+
.map(String::trim)
928+
.filter(line -> !line.isEmpty() && !line.startsWith("#"))
929+
.forEach(line -> {
930+
int idx = line.indexOf('=');
931+
if (idx <= 0) {
932+
throw new IllegalArgumentException(
933+
"Invalid configuration line: '" + line + "'. Expected format 'key=value'");
934+
}
935+
String key = line.substring(0, idx).trim();
936+
String value = line.substring(idx + 1).trim();
937+
overrideConfigKey(key, value);
938+
});
939+
940+
return this;
941+
}
942+
909943
/**
910944
* Overriden configuration properties take precedence over an {@code application.properties} asset added in the test
911945
* {@link JavaArchive}.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.quarkus.test;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import org.eclipse.microprofile.config.Config;
6+
import org.eclipse.microprofile.config.ConfigProvider;
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.api.extension.RegisterExtension;
9+
10+
public class QuarkusUnitTestWithConfigurationTest {
11+
12+
@RegisterExtension
13+
static final QuarkusUnitTest config = new QuarkusUnitTest()
14+
.withConfiguration("""
15+
quarkus.datasource.db-kind=postgresql
16+
quarkus.datasource.username=quarkus
17+
quarkus.datasource.password=quarkus
18+
""");
19+
20+
@Test
21+
public void testInlineConfigurationApplied() {
22+
Config cfg = ConfigProvider.getConfig();
23+
24+
assertEquals("postgresql", cfg.getValue("quarkus.datasource.db-kind", String.class));
25+
assertEquals("quarkus", cfg.getValue("quarkus.datasource.username", String.class));
26+
assertEquals("quarkus", cfg.getValue("quarkus.datasource.password", String.class));
27+
}
28+
}

0 commit comments

Comments
 (0)