aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java')
-rw-r--r--java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java b/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java
index 689dae7dc..bacb75b87 100644
--- a/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java
+++ b/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java
@@ -25,6 +25,7 @@ import static javax.lang.model.element.Modifier.PUBLIC;
import static javax.lang.model.element.Modifier.STATIC;
import androidx.room.compiler.processing.JavaPoetExtKt;
+import androidx.room.compiler.processing.XAnnotation;
import androidx.room.compiler.processing.XConstructorElement;
import androidx.room.compiler.processing.XFiler.Mode;
import androidx.room.compiler.processing.XProcessingEnv;
@@ -41,6 +42,7 @@ import dagger.hilt.processor.internal.ComponentNames;
import dagger.hilt.processor.internal.Processors;
import java.io.IOException;
import java.util.List;
+import java.util.Optional;
/** Generates an implementation of {@link dagger.hilt.android.internal.TestComponentData}. */
public final class TestComponentDataGenerator {
@@ -222,6 +224,13 @@ public final class TestComponentDataGenerator {
}
private CodeBlock callInjectTest(XTypeElement testElement) {
+ Optional<XAnnotation> skipTestInjection =
+ rootMetadata.testRootMetadata().skipTestInjectionAnnotation();
+ if (skipTestInjection.isPresent()) {
+ return CodeBlock.of(
+ "throw new IllegalStateException(\"Cannot inject test when using @$L\")",
+ skipTestInjection.get().getName());
+ }
return CodeBlock.of(
"(($T) (($T) $T.getApplication($T.getApplicationContext()))"
+ ".generatedComponent()).injectTest(testInstance)",