InjectorFactory { public List<String> keyNames() { return keyNames; } InjectorFactory(Builder builder); static Builder newBuilder(InjectorFunction injectorFunction); List<String> keyNames(); TraceContext.Injector<R> newInjector(Setter<R, String> setter); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString();  }
@Test public void oneFunction_keyNames() { assertThat(oneFunction.keyNames()).containsExactly("one"); }
@Test public void twoFunctions_keyNames() { assertThat(twoFunctions.keyNames()).containsExactly("one", "two"); }
@Test public void kindBasedFunctions_keyNames() { assertThat(kindBasedFunctions.keyNames()).containsExactly("four", "three", "two", "one"); }