### Question:
HandlerProvider implements Handler { @Override public Promise<Response, NeverThrowsException> handle(Context context, Request request) { if (handler == null) { handler = InjectorHolder.getInstance(key); } return handler.handle(context, request); } HandlerProvider(Key<? extends Handler> key); @Override Promise<Response, NeverThrowsException> handle(Context context, Request request);  }### Answer:
@Test public void shouldCallInjectorHolderOnFirstCallToHandler() { Context context = new RootContext(); Request request = new Request(); handlerProvider.handle(context, request); assertThat(handlerReturnCount.get()).isEqualTo(1); verify(handler).handle(context, request); }
@Test public void shouldNotCallInjectorHolderTwice() { Context context = new RootContext(); Request request = new Request(); handlerProvider.handle(context, request); handlerProvider.handle(context, request); assertThat(handlerReturnCount.get()).isEqualTo(1); verify(handler, times(2)).handle(context, request); }