### Question:
ExceptionPropertyDispatcher implements PropertyDispatcher { @Override public Class<?> getValueClass() { throw new IllegalStateException( missingMethodMessage("is/get" + StringUtils.capitalize(getProperty()), objects)); } ExceptionPropertyDispatcher(String property, Object... objects); @Override Class<?> getValueClass(); @Override MessageList getMessages(MessageList messageList); @Override String getProperty(); @Override @CheckForNull Object getBoundObject(); @Override T pull(Aspect<T> aspect); @Override void push(Aspect<T> aspect); static String missingMethodMessage(String methodSignature, List<Object> objects); @Override boolean isPushable(Aspect<T> aspect); @Override String toString();  }### Answer:
@Test public void testGetValueClass() { IllegalStateException illegalStateException = assertThrows(IllegalStateException.class, dispatcher::getValueClass); assertThat(illegalStateException.getMessage(), containsStringIgnoringCase(PROPERTY_NAME)); assertThat(illegalStateException.getMessage(), not(containsStringIgnoringCase("object must not be null"))); }