### Question:
ValueAndDataTypePopoverImpl implements ValueAndDataTypePopoverView.Presenter { @Override public String normaliseValue(final String value) { return binding.orElseThrow(() -> new IllegalStateException(BINDING_EXCEPTION)).normaliseValue(value); } ValueAndDataTypePopoverImpl(); @Inject  ValueAndDataTypePopoverImpl(final ValueAndDataTypePopoverView view); @Override HTMLElement getElement(); @Override String getPopoverTitle(); @Override void bind(final HasValueAndTypeRef bound,
                     final int uiRowIndex,
                     final int uiColumnIndex); @Override @SuppressWarnings("unchecked") void setValue(final String value); @Override void setTypeRef(final QName typeRef); @Override String getValueLabel(); @Override String normaliseValue(final String value); @Override void setOnClosedByKeyboardCallback(final Consumer<CanBeClosedByKeyboard> callback); @Override void show(); @Override void hide(); void onDataTypePageNavTabActiveEvent(final @Observes DataTypePageTabActiveEvent event);  }### Answer:
@Test public void testNormaliseValue_WhenNotBound() { final Throwable thrown = catchThrowable(() -> editor.normaliseValue(NAME)); assertThat(thrown).isInstanceOf(IllegalStateException.class) .hasMessageContaining(BINDING_EXCEPTION); }