### Question:
EventChannel { static <T> EventChannel<T> create( final Class<T> channelInterface, final MetricsSystem metricsSystem) { return create( channelInterface, LoggingChannelExceptionHandler.LOGGING_EXCEPTION_HANDLER, metricsSystem); } private  EventChannel(
      final Class<T> channelInterface,
      final EventDeliverer<T> invoker,
      final boolean allowMultipleSubscribers); void stop();  }### Answer:
@Test public void shouldRejectClassesThatAreNotInterfaces() { assertThatThrownBy(() -> EventChannel.create(String.class, metricsSystem)) .isInstanceOf(IllegalArgumentException.class); }
@Test public void shouldRejectInterfacesWithNonVoidMethods() { assertThatThrownBy(() -> EventChannel.create(Supplier.class, metricsSystem)) .isInstanceOf(IllegalArgumentException.class); }
@Test public void shouldRejectInterfacesWithDeclaredExceptions() { assertThatThrownBy(() -> EventChannel.create(WithException.class, metricsSystem)) .isInstanceOf(IllegalArgumentException.class); }