### Question:
DateTimeSelectorView implements DateTimeSelector.View { void onBlurCallback(final BlurEvent blurEvent) { if (!Objects.isNull(getOnValueInputBlur())) { final Object eventTarget = getEventTarget(blurEvent); if (!Objects.isNull(eventTarget) && !dateSelector.isChild(eventTarget) && !timeSelector.isChild(eventTarget)) { getOnValueInputBlur().accept(blurEvent); } } } @Inject  DateTimeSelectorView(final HTMLDivElement dateSelectorContainer,
                                final HTMLDivElement timeSelectorContainer,
                                final DateSelector dateSelector,
                                final TimeSelector timeSelector,
                                final ConstraintPlaceholderHelper placeholderHelper); @Override DateTimeValue getValue(); @Override void setValue(final DateTimeValue value); @Override void setOnValueChanged(final Consumer<Event> onValueChanged); @Override void setOnValueInputBlur(final Consumer<BlurEvent> blurEvent); @Override void select(); @Override void init(final DateTimeSelector presenter);  }### Answer:
@Test public void testOnBlurCallback() { final BlurEvent blurEvent = mock(BlurEvent.class); final Consumer eventConsumer = mock(Consumer.class); final Object target = mock(Object.class); doReturn(eventConsumer).when(view).getOnValueInputBlur(); doReturn(target).when(view).getEventTarget(blurEvent); when(dateSelector.isChild(target)).thenReturn(false); when(timeSelector.isChild(target)).thenReturn(false); view.onBlurCallback(blurEvent); verify(eventConsumer).accept(blurEvent); }