Class TestExtensionsTracker
- java.lang.Object
-
- ru.vyarus.dropwizard.guice.test.jupiter.ext.conf.track.TestExtensionsTracker
-
public class TestExtensionsTracker extends java.lang.ObjectTracks registration of hooks and support objects during test initialization in order to log used additions (to simplify applied objects tracking). Also, tracks applied configuration overrides, but only after application start (the only way to show actually applied values).Also, tracks guicey extensions performance to simplify test performance problems resolution.
- Since:
- 27.05.2022
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<java.lang.String>configModifierSourceConfiguration modifiers registration sources.booleandebugExtension debug state.static java.lang.StringDEBUG_ENABLEDEnabled value forGUICEY_EXTENSIONS_DEBUGsystem property.protected java.util.List<java.lang.String>extensionsSourceSetup objects registration sources.static java.lang.StringGUICEY_EXTENSIONS_DEBUGSystem property enables debug output for all used guicey extensions.protected java.util.List<java.lang.String>hooksSourceHooks registration sources.
-
Constructor Summary
Constructors Constructor Description TestExtensionsTracker()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconfigModifierClasses(java.lang.Class<? extends ConfigModifier>... mods)Register config modifier classes.voidconfigModifierInstances(ConfigModifier... exts)Register config modifier instances.voidconfigModifiersFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends ConfigModifier>... exts)Register config modifiers from annotation.java.util.List<TestEnvironmentSetup>defaultExtensions(TestEnvironmentSetup... exts)Register default setup objects (which must be registered last due to AOP usage).voidenableDebugFromSystemProperty()In some cases it might be simpler to use system property to enable debug:-Dguicey.extensions.debug=true.voidextensionClasses(java.lang.Class<? extends TestEnvironmentSetup>... exts)Register setup objects classes.voidextensionInstances(TestEnvironmentSetup... exts)Register setup objects instances.voidextensionsFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends TestEnvironmentSetup>... exts)Register setup objects from annotation.voidextensionsFromFields(java.util.List<AnnotatedField<EnableSetup,TestEnvironmentSetup>> fields, java.lang.Object instance)Register setup objects from test fields.voidhookClasses(java.lang.Class<? extends GuiceyConfigurationHook>... exts)Register hook classes.voidhookInstances(GuiceyConfigurationHook... exts)Register hook instances.voidhooksFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends GuiceyConfigurationHook>... exts)Register hooks from annotation.voidhooksFromFields(java.util.List<AnnotatedField<EnableHook,GuiceyConfigurationHook>> fields, boolean baseHooks, java.lang.Object instance)Register hooks from test fields.voidlifecyclePhase(org.junit.jupiter.api.extension.ExtensionContext context, GuiceyTestTime phase)Indicate current phase.voidlogGuiceyTestTime(GuiceyTestTime phase, org.junit.jupiter.api.extension.ExtensionContext context)Record guicey time.voidlogOverriddenConfigs(java.lang.String configPrefix)Logs overridden configurations.voidlogUsedHooksAndSetupObjects(java.lang.String configPrefix)Logs registered setup objects and hooks.java.util.List<TestEnvironmentSetup>lookupExtensions(TestEnvironmentSetup... exts)Register setup objects resolved with service loader.voidperformanceTrack(GuiceyTestTime name, java.time.Duration duration)Record performance.voidsetContextSetupObject(java.lang.Class<? extends TestEnvironmentSetup> setup)
-
-
-
Field Detail
-
GUICEY_EXTENSIONS_DEBUG
public static final java.lang.String GUICEY_EXTENSIONS_DEBUG
System property enables debug output for all used guicey extensions.- See Also:
- Constant Field Values
-
DEBUG_ENABLED
public static final java.lang.String DEBUG_ENABLED
Enabled value forGUICEY_EXTENSIONS_DEBUGsystem property.- See Also:
- Constant Field Values
-
debug
public boolean debug
Extension debug state.
-
extensionsSource
protected final java.util.List<java.lang.String> extensionsSource
Setup objects registration sources.
-
hooksSource
protected final java.util.List<java.lang.String> hooksSource
Hooks registration sources.
-
configModifierSource
protected final java.util.List<java.lang.String> configModifierSource
Configuration modifiers registration sources.
-
-
Method Detail
-
setContextSetupObject
public void setContextSetupObject(java.lang.Class<? extends TestEnvironmentSetup> setup)
- Parameters:
setup- context test extension
-
extensionsFromFields
public final void extensionsFromFields(java.util.List<AnnotatedField<EnableSetup,TestEnvironmentSetup>> fields, java.lang.Object instance)
Register setup objects from test fields.- Parameters:
fields- fieldsinstance- test instance
-
extensionsFromAnnotation
@SafeVarargs public final void extensionsFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends TestEnvironmentSetup>... exts)Register setup objects from annotation.- Parameters:
ann- annotation typeexts- setup objects
-
hooksFromFields
public final void hooksFromFields(java.util.List<AnnotatedField<EnableHook,GuiceyConfigurationHook>> fields, boolean baseHooks, java.lang.Object instance)
Register hooks from test fields.- Parameters:
fields- fieldsbaseHooks- hooks from base classinstance- test instance
-
hooksFromAnnotation
@SafeVarargs public final void hooksFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends GuiceyConfigurationHook>... exts)Register hooks from annotation.- Parameters:
ann- annotation typeexts- hooks
-
extensionInstances
public final void extensionInstances(TestEnvironmentSetup... exts)
Register setup objects instances.- Parameters:
exts- setup objects
-
extensionClasses
@SafeVarargs public final void extensionClasses(java.lang.Class<? extends TestEnvironmentSetup>... exts)
Register setup objects classes.- Parameters:
exts- setup object classes
-
lookupExtensions
@SafeVarargs public final java.util.List<TestEnvironmentSetup> lookupExtensions(TestEnvironmentSetup... exts)
Register setup objects resolved with service loader.- Parameters:
exts- setup objects- Returns:
- setup object instances
-
defaultExtensions
@SafeVarargs public final java.util.List<TestEnvironmentSetup> defaultExtensions(TestEnvironmentSetup... exts)
Register default setup objects (which must be registered last due to AOP usage).- Parameters:
exts- setup objects- Returns:
- setup objects instances
-
hookInstances
public final void hookInstances(GuiceyConfigurationHook... exts)
Register hook instances.- Parameters:
exts- hooks
-
hookClasses
@SafeVarargs public final void hookClasses(java.lang.Class<? extends GuiceyConfigurationHook>... exts)
Register hook classes.- Parameters:
exts- hooks
-
configModifiersFromAnnotation
@SafeVarargs public final void configModifiersFromAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation> ann, java.lang.Class<? extends ConfigModifier>... exts)Register config modifiers from annotation.- Parameters:
ann- annotation typeexts- modifiers
-
configModifierClasses
@SafeVarargs public final void configModifierClasses(java.lang.Class<? extends ConfigModifier>... mods)
Register config modifier classes.- Parameters:
mods- modifiers
-
configModifierInstances
public final void configModifierInstances(ConfigModifier... exts)
Register config modifier instances.- Parameters:
exts- modifiers
-
lifecyclePhase
public void lifecyclePhase(org.junit.jupiter.api.extension.ExtensionContext context, GuiceyTestTime phase)Indicate current phase.- Parameters:
context- junit contextphase- phase
-
performanceTrack
public void performanceTrack(GuiceyTestTime name, java.time.Duration duration)
Record performance.- Parameters:
name- tracker nameduration- duration
-
enableDebugFromSystemProperty
public void enableDebugFromSystemProperty()
In some cases it might be simpler to use system property to enable debug:-Dguicey.extensions.debug=true.
-
logUsedHooksAndSetupObjects
public void logUsedHooksAndSetupObjects(java.lang.String configPrefix)
Logs registered setup objects and hooks. Do nothing if no setup objects or hooks registered.- Parameters:
configPrefix- configuration prefix
-
logOverriddenConfigs
public void logOverriddenConfigs(java.lang.String configPrefix)
Logs overridden configurations. Show values already applied to system properties.- Parameters:
configPrefix- configuration prefix
-
logGuiceyTestTime
public void logGuiceyTestTime(GuiceyTestTime phase, org.junit.jupiter.api.extension.ExtensionContext context)
Record guicey time.- Parameters:
phase- phasecontext- junit context
-
-