Class TestExtensionsTracker
java.lang.Object
ru.vyarus.dropwizard.guice.test.jupiter.ext.conf.track.TestExtensionsTracker
Tracks 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
FieldsModifier and TypeFieldDescriptionConfiguration modifiers registration sources.booleanExtension debug state.static final StringEnabled value forGUICEY_EXTENSIONS_DEBUGsystem property.Setup objects registration sources.static final StringSystem property enables debug output for all used guicey extensions.Hooks registration sources. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidconfigModifierClasses(Class<? extends ConfigModifier>... mods) Register config modifier classes.final voidconfigModifierInstances(ConfigModifier... exts) Register config modifier instances.final voidconfigModifiersFromAnnotation(Class<? extends Annotation> ann, Class<? extends ConfigModifier>... exts) Register config modifiers from annotation.final List<TestEnvironmentSetup>defaultExtensions(TestEnvironmentSetup... exts) Register default setup objects (which must be registered last due to AOP usage).voidIn some cases it might be simpler to use system property to enable debug:-Dguicey.extensions.debug=true.final voidextensionClasses(Class<? extends TestEnvironmentSetup>... exts) Register setup objects classes.final voidextensionInstances(TestEnvironmentSetup... exts) Register setup objects instances.final voidextensionsFromAnnotation(Class<? extends Annotation> ann, Class<? extends TestEnvironmentSetup>... exts) Register setup objects from annotation.final voidextensionsFromFields(List<AnnotatedField<EnableSetup, TestEnvironmentSetup>> fields, Object instance) Register setup objects from test fields.final voidhookClasses(Class<? extends GuiceyConfigurationHook>... exts) Register hook classes.final voidhookInstances(GuiceyConfigurationHook... exts) Register hook instances.final voidhooksFromAnnotation(Class<? extends Annotation> ann, Class<? extends GuiceyConfigurationHook>... exts) Register hooks from annotation.final voidhooksFromFields(List<AnnotatedField<EnableHook, GuiceyConfigurationHook>> fields, boolean baseHooks, 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(String configPrefix) Logs overridden configurations.voidlogUsedHooksAndSetupObjects(String configPrefix) Logs registered setup objects and hooks.final List<TestEnvironmentSetup>lookupExtensions(TestEnvironmentSetup... exts) Register setup objects resolved with service loader.voidperformanceTrack(GuiceyTestTime name, Duration duration) Record performance.voidsetContextSetupObject(Class<? extends TestEnvironmentSetup> setup)
-
Field Details
-
GUICEY_EXTENSIONS_DEBUG
System property enables debug output for all used guicey extensions.- See Also:
-
DEBUG_ENABLED
Enabled value forGUICEY_EXTENSIONS_DEBUGsystem property.- See Also:
-
debug
public boolean debugExtension debug state. -
extensionsSource
Setup objects registration sources. -
hooksSource
Hooks registration sources. -
configModifierSource
Configuration modifiers registration sources.
-
-
Constructor Details
-
TestExtensionsTracker
public TestExtensionsTracker()
-
-
Method Details
-
setContextSetupObject
- Parameters:
setup- context test extension
-
extensionsFromFields
public final void extensionsFromFields(List<AnnotatedField<EnableSetup, TestEnvironmentSetup>> fields, Object instance) Register setup objects from test fields.- Parameters:
fields- fieldsinstance- test instance
-
extensionsFromAnnotation
@SafeVarargs public final void extensionsFromAnnotation(Class<? extends Annotation> ann, Class<? extends TestEnvironmentSetup>... exts) Register setup objects from annotation.- Parameters:
ann- annotation typeexts- setup objects
-
hooksFromFields
public final void hooksFromFields(List<AnnotatedField<EnableHook, GuiceyConfigurationHook>> fields, boolean baseHooks, Object instance) Register hooks from test fields.- Parameters:
fields- fieldsbaseHooks- hooks from base classinstance- test instance
-
hooksFromAnnotation
@SafeVarargs public final void hooksFromAnnotation(Class<? extends Annotation> ann, Class<? extends GuiceyConfigurationHook>... exts) Register hooks from annotation.- Parameters:
ann- annotation typeexts- hooks
-
extensionInstances
Register setup objects instances.- Parameters:
exts- setup objects
-
extensionClasses
Register setup objects classes.- Parameters:
exts- setup object classes
-
lookupExtensions
Register setup objects resolved with service loader.- Parameters:
exts- setup objects- Returns:
- setup object instances
-
defaultExtensions
@SafeVarargs public final 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
Register hook instances.- Parameters:
exts- hooks
-
hookClasses
Register hook classes.- Parameters:
exts- hooks
-
configModifiersFromAnnotation
@SafeVarargs public final void configModifiersFromAnnotation(Class<? extends Annotation> ann, Class<? extends ConfigModifier>... exts) Register config modifiers from annotation.- Parameters:
ann- annotation typeexts- modifiers
-
configModifierClasses
Register config modifier classes.- Parameters:
mods- modifiers
-
configModifierInstances
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
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
Logs registered setup objects and hooks. Do nothing if no setup objects or hooks registered.- Parameters:
configPrefix- configuration prefix
-
logOverriddenConfigs
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
-