Skip to content

Commit 033de57

Browse files
committed
Check that the required state has been initialized before running a test
1 parent ee51e6e commit 033de57

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/main/java/com/google/testing/compile/CompilationExtension.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.common.util.concurrent.ThreadFactoryBuilder;
2525
import org.junit.jupiter.api.extension.AfterAllCallback;
2626
import org.junit.jupiter.api.extension.BeforeAllCallback;
27+
import org.junit.jupiter.api.extension.BeforeEachCallback;
2728
import org.junit.jupiter.api.extension.ExtendWith;
2829
import org.junit.jupiter.api.extension.Extension;
2930
import org.junit.jupiter.api.extension.ExtensionContext;
@@ -67,7 +68,7 @@
6768
* @author David van Leusen
6869
*/
6970
public class CompilationExtension
70-
implements BeforeAllCallback, AfterAllCallback, ParameterResolver {
71+
implements BeforeAllCallback, BeforeEachCallback, AfterAllCallback, ParameterResolver {
7172
private static final JavaFileObject DUMMY =
7273
JavaFileObjects.forSourceLines("Dummy", "final class Dummy {}");
7374
private static final ExtensionContext.Namespace NAMESPACE =
@@ -130,6 +131,15 @@ protected boolean onAdvance(int phase, int parties) {
130131
}
131132
}
132133

134+
@Override
135+
public void beforeEach(ExtensionContext extensionContext) {
136+
checkState(
137+
PHASER_KEY.get(extensionContext.getStore(NAMESPACE)) != null,
138+
"CompilationExtension is only available as a class-level extension. " +
139+
"Using it as an instance-level extension through @RegisterExtension is not supported"
140+
);
141+
}
142+
133143
@Override
134144
public void afterAll(ExtensionContext context) throws Exception {
135145
final ExtensionContext.Store store = context.getStore(NAMESPACE);

0 commit comments

Comments
 (0)