Skip to content

Commit e449894

Browse files
committed
Verify that MetafixToDo extension is actually used. (#158)
1 parent 642f9b0 commit e449894

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

metafix/src/test/java/org/metafacture/metafix/MetafixToDo.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.metafacture.metafix;
22

33
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
import org.junit.jupiter.api.extension.AfterAllCallback;
46
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
57
import org.junit.jupiter.api.extension.ExecutionCondition;
68
import org.junit.jupiter.api.extension.ExtendWith;
@@ -25,13 +27,28 @@
2527

2628
String value();
2729

28-
class Extension implements InvocationInterceptor {
30+
class Extension implements AfterAllCallback, InvocationInterceptor {
2931

3032
private static final boolean DISABLE_TO_DO = Boolean.parseBoolean(System.getProperty("org.metafacture.metafix.disableToDo"));
3133

34+
private boolean annotationPresent;
35+
3236
private Extension() {
3337
}
3438

39+
@Override
40+
public void afterAll(final ExtensionContext context) {
41+
if (!annotationPresent) {
42+
for (final Method method : context.getTestClass().get().getDeclaredMethods()) {
43+
if (method.isAnnotationPresent(Test.class) && method.isAnnotationPresent(MetafixToDo.class)) {
44+
return;
45+
}
46+
}
47+
48+
Assertions.fail("Unused extension (no annotations present): " + Handler.EXTENSION_NAME);
49+
}
50+
}
51+
3552
@Override
3653
public void interceptTestMethod(final InvocationInterceptor.Invocation<Void> invocation, final ReflectiveInvocationContext<Method> invocationContext, final ExtensionContext extensionContext) throws Throwable {
3754
if (DISABLE_TO_DO) {
@@ -61,6 +78,7 @@ private void handleAnnotation(final ReflectiveInvocationContext<Method> invocati
6178
final MetafixToDo annotation = invocationContext.getExecutable().getAnnotation(MetafixToDo.class);
6279

6380
if (annotation != null) {
81+
annotationPresent = true;
6482
consumer.accept(annotation);
6583
}
6684
}

0 commit comments

Comments
 (0)