Class ConfigOverrideUtils
java.lang.Object
ru.vyarus.dropwizard.guice.test.util.ConfigOverrideUtils
Config override handling utils.
- Since:
- 30.04.2020
-
Method Summary
Modifier and TypeMethodDescriptionstatic <C extends io.dropwizard.core.Configuration>
Function<io.dropwizard.core.Application<C>,io.dropwizard.core.cli.Command> buildCommandFactory(List<ConfigModifier<C>> modifiers) Create server command function with configuration modifiers support.static io.dropwizard.testing.ConfigOverride[]static <C extends io.dropwizard.core.Configuration>
List<ConfigModifier<C>>createModifiers(Class<? extends ConfigModifier<?>>... modifiers) Instantiates provided configuration modifiers.static StringcreatePrefix(org.junit.jupiter.api.extension.ExtensionContext context) Unique prefix is important because config overrides works through system properties and without unique prefix it would be impossible to use parallel tests.static StringformatRestMapping(String restMapping) Applies "/*" if not already specified in rest mapping.static io.dropwizard.testing.ConfigOverride[]merge(io.dropwizard.testing.ConfigOverride[] base, io.dropwizard.testing.ConfigOverride... addition) Adds config override for existing overrides array.static String[]Merges config override arrays.static io.dropwizard.testing.ConfigOverrideoverrideRestMapping(String prefix, String restMapping) Creates config override for rest mapping.static io.dropwizard.testing.ConfigOverride[]prepareExtensionOverrides(io.dropwizard.testing.ConfigOverride[] overrides, org.junit.jupiter.api.extension.ExtensionContext context) Process config overrides set by junit extensions.static <T extends io.dropwizard.testing.ConfigOverride & ConfigurablePrefix>
io.dropwizard.testing.ConfigOverride[]prepareOverrides(String prefix, List<T> values) Process provided custom config override objects by setting context prefix.static <C extends io.dropwizard.core.Configuration>
voidrunModifiers(C configuration, List<ConfigModifier<C>> modifiers) Runs configuration modifiers.
-
Method Details
-
createPrefix
Unique prefix is important because config overrides works through system properties and without unique prefix it would be impossible to use parallel tests.Because extension might be used per-method, prefix must follow current test hierarchy (counting nested tests and executed test method).
- Parameters:
context- test context- Returns:
- unique properties prefix to use for this test
-
convert
- Parameters:
prefix- prefixprops- overriding properties in "key: value" format- Returns:
- parsed configuration override objects
-
mergeRaw
Merges config override arrays.- Parameters:
base- existing overrides (may be null)addition- additional overrides (may be empty)- Returns:
- merged overrides
-
merge
public static io.dropwizard.testing.ConfigOverride[] merge(io.dropwizard.testing.ConfigOverride[] base, io.dropwizard.testing.ConfigOverride... addition) Adds config override for existing overrides array.- Parameters:
base- existing overrides (may be null)addition- additional overrides (may be empty)- Returns:
- merged overrides
-
prepareOverrides
public static <T extends io.dropwizard.testing.ConfigOverride & ConfigurablePrefix> io.dropwizard.testing.ConfigOverride[] prepareOverrides(String prefix, List<T> values) Process provided custom config override objects by setting context prefix.- Type Parameters:
T- composite helper type- Parameters:
prefix- test specific prefixvalues- objects to process- Returns:
- array of processed objects or null if nothing registered
-
prepareExtensionOverrides
public static io.dropwizard.testing.ConfigOverride[] prepareExtensionOverrides(io.dropwizard.testing.ConfigOverride[] overrides, org.junit.jupiter.api.extension.ExtensionContext context) Process config overrides set by junit extensions.- Parameters:
overrides- array of all configured config overridescontext- extension contest to resolve storage from- Returns:
- same array
-
formatRestMapping
Applies "/*" if not already specified in rest mapping.- Parameters:
restMapping- user-declared rest mapping string- Returns:
- formatted rest mapping (for using in configuration)
-
overrideRestMapping
public static io.dropwizard.testing.ConfigOverride overrideRestMapping(@Nullable String prefix, String restMapping) Creates config override for rest mapping. Declared mapping if automatically "fixed" to comply with required format.- Parameters:
prefix- configuration override prefixes (may be null to use default prefix)restMapping- rest mapping to configure- Returns:
- config override object
-
createModifiers
@SafeVarargs public static <C extends io.dropwizard.core.Configuration> List<ConfigModifier<C>> createModifiers(Class<? extends ConfigModifier<?>>... modifiers) Instantiates provided configuration modifiers.- Type Parameters:
C- configuration type- Parameters:
modifiers- configuration modifiers to instantiate- Returns:
- hooks instances
-
runModifiers
public static <C extends io.dropwizard.core.Configuration> void runModifiers(C configuration, List<ConfigModifier<C>> modifiers) Runs configuration modifiers.- Type Parameters:
C- configuration type- Parameters:
configuration- configuration instancemodifiers- configuration modifiers- Throws:
IllegalStateException- if modifier fails to execute
-
buildCommandFactory
public static <C extends io.dropwizard.core.Configuration> Function<io.dropwizard.core.Application<C>,io.dropwizard.core.cli.Command> buildCommandFactory(List<ConfigModifier<C>> modifiers) Create server command function with configuration modifiers support.- Type Parameters:
C- configuration type (required to align input)- Parameters:
modifiers- configuration modifiers- Returns:
- server command function with configuration modifiers support.
-