aboutsummaryrefslogtreecommitdiff
path: root/javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java
diff options
context:
space:
mode:
authorAurimas Liutikas <aurimas@google.com>2021-05-12 22:53:00 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-05-12 22:53:00 +0000
commit8630738d0a775a2f8e5bc09c437556bd75d8b620 (patch)
tree6f59a75348d07612173246ac6c4fca04bde0df2c /javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java
parent0cd6a8551365e02a1687415356215ba2061739cd (diff)
parent5480a6c05f0c4727b3dd154709f40fdae8d8b4a2 (diff)
downloaddagger2-8630738d0a775a2f8e5bc09c437556bd75d8b620.tar.gz
Merge "Revert "Merge commit 'upstream/dagger-2.35.1^'"" am: 5882ce8935 am: 5480a6c05f
Original change: https://android-review.googlesource.com/c/platform/external/dagger2/+/1705751 Change-Id: I2f7a4d61b9f48965273925620a8dc0afc43c9bef
Diffstat (limited to 'javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java')
-rw-r--r--javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java181
1 files changed, 0 insertions, 181 deletions
diff --git a/javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java b/javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java
deleted file mode 100644
index 2050d671c..000000000
--- a/javatests/dagger/hilt/android/EarlyEntryPointHiltAndroidTestRuntimeTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2021 The Dagger Authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package dagger.hilt.android;
-
-import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
-import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.assertThrows;
-
-import android.os.Build;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import dagger.hilt.EntryPoint;
-import dagger.hilt.EntryPoints;
-import dagger.hilt.InstallIn;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.BarEntryPoint;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.EarlyFooEntryPoint;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.EarlyMySubcomponentBuilderEntryPoint;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.MySubcomponent;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.MySubcomponentBuilderEntryPoint;
-import dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses.MySubcomponentScoped;
-import dagger.hilt.android.internal.testing.TestApplicationComponentManager;
-import dagger.hilt.android.testing.HiltAndroidRule;
-import dagger.hilt.android.testing.HiltAndroidTest;
-import dagger.hilt.android.testing.HiltTestApplication;
-import dagger.hilt.components.SingletonComponent;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.annotation.Config;
-
-@HiltAndroidTest
-@RunWith(AndroidJUnit4.class)
-// Robolectric requires Java9 to run API 29 and above, so use API 28 instead
-@Config(sdk = Build.VERSION_CODES.P, application = HiltTestApplication.class)
-public final class EarlyEntryPointHiltAndroidTestRuntimeTest {
- @EntryPoint
- @InstallIn(SingletonComponent.class)
- interface FooEntryPoint {
- Foo foo();
- }
-
- @Singleton
- public static class Foo {
- @Inject
- Foo() {}
- }
-
- @MySubcomponentScoped
- public static class Bar {
- final Foo foo;
- final int id;
-
- @Inject
- Bar(Foo foo, int id) {
- this.foo = foo;
- this.id = id;
- }
- }
-
- @Rule public HiltAndroidRule rule = new HiltAndroidRule(this);
-
- @Test
- public void testEarlyEntryPointsWrongEntryPointFails() throws Exception {
- IllegalStateException exception =
- assertThrows(
- IllegalStateException.class,
- () -> EarlyEntryPoints.get(getApplicationContext(), FooEntryPoint.class));
-
- assertThat(exception)
- .hasMessageThat()
- .contains(
- "FooEntryPoint should be called with EntryPoints.get() rather than "
- + "EarlyEntryPoints.get()");
- }
-
- @Test
- public void testEntryPointsWrongEntryPointFails() throws Exception {
- IllegalStateException exception =
- assertThrows(
- IllegalStateException.class,
- () -> EntryPoints.get(getApplicationContext(), EarlyFooEntryPoint.class));
-
- assertThat(exception)
- .hasMessageThat()
- .contains(
- "Interface, dagger.hilt.android.EarlyEntryPointHiltAndroidTestRuntimeClasses."
- + "EarlyFooEntryPoint, annotated with @EarlyEntryPoint should be called with "
- + "EarlyEntryPoints.get() rather than EntryPoints.get()");
- }
-
- @Test
- public void testComponentInstances() {
- Object componentManager = ((HiltTestApplication) getApplicationContext()).componentManager();
- Object component1 = ((TestApplicationComponentManager) componentManager).generatedComponent();
- Object component2 = ((TestApplicationComponentManager) componentManager).generatedComponent();
- assertThat(component1).isNotNull();
- assertThat(component2).isNotNull();
- assertThat(component1).isEqualTo(component2);
-
- Object earlyComponent1 =
- ((TestApplicationComponentManager) componentManager).earlySingletonComponent();
- Object earlyComponent2 =
- ((TestApplicationComponentManager) componentManager).earlySingletonComponent();
- assertThat(earlyComponent1).isNotNull();
- assertThat(earlyComponent2).isNotNull();
- assertThat(earlyComponent1).isEqualTo(earlyComponent2);
- assertThat(earlyComponent1).isNotEqualTo(component1);
- }
-
- // Test that the early entry point returns a different @Singleton binding instance.
- @Test
- public void testScopedEntryPointValues() {
- Foo foo1 = EntryPoints.get(getApplicationContext(), FooEntryPoint.class).foo();
- Foo foo2 = EntryPoints.get(getApplicationContext(), FooEntryPoint.class).foo();
- Foo earlyFoo1 =
- EarlyEntryPoints.get(getApplicationContext(), EarlyFooEntryPoint.class).foo();
- Foo earlyFoo2 =
- EarlyEntryPoints.get(getApplicationContext(), EarlyFooEntryPoint.class).foo();
-
- assertThat(foo1).isNotNull();
- assertThat(foo2).isNotNull();
- assertThat(earlyFoo1).isNotNull();
- assertThat(earlyFoo2).isNotNull();
-
- assertThat(foo1).isEqualTo(foo2);
- assertThat(earlyFoo1).isEqualTo(earlyFoo2);
- assertThat(earlyFoo1).isNotEqualTo(foo1);
- }
-
- // Test that the a subcomponent of the early component does not need to use EarlyEntryPoints.
- @Test
- public void testSubcomponentEntryPoints() {
- MySubcomponent subcomponent =
- EntryPoints.get(getApplicationContext(), MySubcomponentBuilderEntryPoint.class)
- .mySubcomponentBuilder()
- .id(5)
- .build();
-
- MySubcomponent earlySubcomponent =
- EarlyEntryPoints.get(
- getApplicationContext(), EarlyMySubcomponentBuilderEntryPoint.class)
- .mySubcomponentBuilder()
- .id(11)
- .build();
-
- assertThat(subcomponent).isNotNull();
- assertThat(earlySubcomponent).isNotNull();
- assertThat(subcomponent).isNotEqualTo(earlySubcomponent);
-
- // Test that subcomponents can use EntryPoints
- Bar bar1 = EntryPoints.get(subcomponent, BarEntryPoint.class).bar();
- Bar bar2 = EntryPoints.get(subcomponent, BarEntryPoint.class).bar();
-
- // Test that early subcomponents can use EntryPoints or EarlyEntryPoints
- Bar earlyBar1 = EntryPoints.get(earlySubcomponent, BarEntryPoint.class).bar();
- Bar earlyBar2 = EntryPoints.get(earlySubcomponent, BarEntryPoint.class).bar();
-
- assertThat(bar1).isNotNull();
- assertThat(bar2).isNotNull();
- assertThat(earlyBar1).isNotNull();
- assertThat(earlyBar2).isNotNull();
- assertThat(bar1).isEqualTo(bar2);
- assertThat(earlyBar1).isEqualTo(earlyBar2);
- assertThat(bar1).isNotEqualTo(earlyBar1);
- }
-}