ljacqu/DependencyInjector

View on GitHub
injector/src/main/java/ch/jalu/injector/testing/DelayedInjectionExtension.java

Summary

Maintainability
A
0 mins
Test Coverage
package ch.jalu.injector.testing;

import ch.jalu.injector.testing.extension.DelayedInjectionRunnerValidator;
import ch.jalu.injector.testing.extension.RunBeforeInjectings;
import ch.jalu.injector.testing.extension.RunDelayedInjects;
import org.junit.jupiter.api.extension.AfterAllCallback;
import org.junit.jupiter.api.extension.BeforeEachCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.mockito.MockitoAnnotations;

public class DelayedInjectionExtension implements BeforeEachCallback, AfterAllCallback {

    @Override
    public void beforeEach(ExtensionContext context) {
        Object instance = context.getRequiredTestInstance();
        MockitoAnnotations.initMocks(instance);

        new RunBeforeInjectings(instance).evaluate();
        new RunDelayedInjects(instance).evaluate();
    }

    @Override
    public void afterAll(ExtensionContext context) {
        new DelayedInjectionRunnerValidator(context.getRequiredTestClass()).testFinished();
    }
}