@Test public void twoFunctions_injects_deferred() {

  DeferredInjector<Object> deferredInjector =
      (DeferredInjector<Object>) twoFunctions.newInjector(setter);
  for (Kind kind : injectableKinds) {
    when(request.spanKind()).thenReturn(kind);
    deferredInjector.inject(context, request);
    assertThat(oneCount.getAndSet(0)).isOne();
    assertThat(twoCount.getAndSet(0)).isOne();
  }
  deferredInjector.inject(context, notRequest);
  assertThat(oneCount.getAndSet(0)).isOne();
  assertThat(twoCount.getAndSet(0)).isOne();
  // works with nonsense
  when(request.spanKind()).thenReturn(Kind.SERVER);
  deferredInjector.inject(context, request);
  assertThat(oneCount.getAndSet(0)).isOne();
  assertThat(twoCount.getAndSet(0)).isOne();
}