MCPcopy Index your code
hub / github.com/google/dagger / NullabilityTest

Class NullabilityTest

javatests/dagger/functional/nullables/NullabilityTest.java:27–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25import org.junit.runners.JUnit4;
26
27@RunWith(JUnit4.class)
28public class NullabilityTest {
29 @Test public void testNullability_provides() {
30 NullModule module = new NullModule();
31 NullComponent component = DaggerNullComponent.builder().nullModule(module).build();
32
33 // Can't construct NullFoo because it depends on Number, and Number was null.
34 try {
35 component.nullFoo();
36 fail();
37 } catch (NullPointerException npe) {
38 assertThat(npe).hasMessage("Cannot return null from a non-@Nullable @Provides method");
39 }
40
41 // set number to non-null so we can create
42 module.numberValue = 1;
43 NullFoo nullFoo = component.nullFoo();
44
45 // Then set it back to null so we can test its providers.
46 module.numberValue = null;
47 validate(true, nullFoo.string, nullFoo.stringProvider, nullFoo.numberProvider);
48 validate(true, nullFoo.methodInjectedString, nullFoo.methodInjectedStringProvider,
49 nullFoo.methodInjectedNumberProvider);
50 validate(true, nullFoo.fieldInjectedString, nullFoo.fieldInjectedStringProvider,
51 nullFoo.fieldInjectedNumberProvider);
52 }
53
54 @Test public void testNullability_components() {
55 NullComponent nullComponent = new NullComponent() {
56 @Override public Provider<String> stringProvider() {
57 return new Provider<String>() {
58 @Override public String get() {
59 return null;
60 }
61 };
62 }
63
64 @Override public String string() {
65 return null;
66 }
67
68 @Override public Provider<Number> numberProvider() {
69 return new Provider<Number>() {
70 @Override public Number get() {
71 return null;
72 }
73 };
74 }
75
76 @Override public Number number() {
77 return null;
78 }
79
80 @Override public NullFoo nullFoo() {
81 return null;
82 }
83 };
84 NullComponentWithDependency component =

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected