diff options
Diffstat (limited to 'java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java')
-rw-r--r-- | java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java b/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java index 101c124d9..284f8cdee 100644 --- a/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java +++ b/java/dagger/hilt/processor/internal/root/TestComponentDataGenerator.java @@ -20,7 +20,6 @@ import static dagger.internal.codegen.extension.DaggerStreams.toImmutableSet; import static java.util.stream.Collectors.joining; import static javax.lang.model.element.Modifier.FINAL; import static javax.lang.model.element.Modifier.PRIVATE; -import static javax.lang.model.element.Modifier.PROTECTED; import static javax.lang.model.element.Modifier.PUBLIC; import static javax.lang.model.element.Modifier.STATIC; import static javax.lang.model.util.ElementFilter.constructorsIn; @@ -46,28 +45,24 @@ public final class TestComponentDataGenerator { private final ProcessingEnvironment processingEnv; private final RootMetadata rootMetadata; private final ClassName name; - private final ComponentNames componentNames; public TestComponentDataGenerator( ProcessingEnvironment processingEnv, - RootMetadata rootMetadata, - ComponentNames componentNames) { + RootMetadata rootMetadata) { this.processingEnv = processingEnv; this.rootMetadata = rootMetadata; - this.componentNames = componentNames; this.name = Processors.append( Processors.getEnclosedClassName(rootMetadata.testRootMetadata().testName()), - "_TestComponentDataSupplier"); + "_ComponentDataHolder"); } /** * * * <pre><code>{@code - * public final class FooTest_TestComponentDataSupplier extends TestComponentDataSupplier { - * @Override - * protected TestComponentData get() { + * public final class FooTest_ComponentDataHolder { + * public static TestComponentData get() { * return new TestComponentData( * false, // waitForBindValue * testInstance -> injectInternal(($1T) testInstance), @@ -88,15 +83,15 @@ public final class TestComponentDataGenerator { public void generate() throws IOException { TypeSpec.Builder generator = TypeSpec.classBuilder(name) - .superclass(ClassNames.TEST_COMPONENT_DATA_SUPPLIER) .addModifiers(PUBLIC, FINAL) + .addMethod(MethodSpec.constructorBuilder().addModifiers(PRIVATE).build()) .addMethod(getMethod()) .addMethod(getTestInjectInternalMethod()); Processors.addGeneratedAnnotation( generator, processingEnv, ClassNames.ROOT_PROCESSOR.toString()); - JavaFile.builder(name.packageName(), generator.build()) + JavaFile.builder(rootMetadata.testRootMetadata().testName().packageName(), generator.build()) .build() .writeTo(processingEnv.getFiler()); } @@ -104,11 +99,8 @@ public final class TestComponentDataGenerator { private MethodSpec getMethod() { TypeElement testElement = rootMetadata.testRootMetadata().testElement(); ClassName component = - componentNames.generatedComponent( - rootMetadata.canShareTestComponents() - ? ClassNames.DEFAULT_ROOT - : ClassName.get(testElement), - ClassNames.SINGLETON_COMPONENT); + ComponentNames.generatedComponent( + ClassName.get(testElement), ClassNames.SINGLETON_COMPONENT); ImmutableSet<TypeElement> daggerRequiredModules = rootMetadata.modulesThatDaggerCannotConstruct(ClassNames.SINGLETON_COMPONENT); ImmutableSet<TypeElement> hiltRequiredModules = @@ -117,7 +109,7 @@ public final class TestComponentDataGenerator { .collect(toImmutableSet()); return MethodSpec.methodBuilder("get") - .addModifiers(PROTECTED) + .addModifiers(PUBLIC, STATIC) .returns(ClassNames.TEST_COMPONENT_DATA) .addStatement( "return new $T($L, $L, $L, $L, $L)", @@ -210,14 +202,14 @@ public final class TestComponentDataGenerator { AnnotationSpec.builder(SuppressWarnings.class) .addMember("value", "$S", "unchecked") .build()) - .addStatement(callInjectTest(testElement)) + .addStatement("$L.injectTest(testInstance)", getInjector(testElement)) .build(); } - private CodeBlock callInjectTest(TypeElement testElement) { + private static CodeBlock getInjector(TypeElement testElement) { return CodeBlock.of( - "(($T) (($T) $T.getApplicationContext()).generatedComponent()).injectTest(testInstance)", - rootMetadata.testRootMetadata().testInjectorName(), + "(($T) (($T) $T.getApplicationContext()).generatedComponent())", + ClassNames.TEST_INJECTOR, ClassNames.GENERATED_COMPONENT_MANAGER, ClassNames.APPLICATION_PROVIDER); } |