public void testRemoveValidationMessageWhenRemovingRule() { final IValidator rule = new AlwaysWrongValidator(); valueBindingSupport.addValidationMessage("foo", rule); // $NON-NLS-1$ valueBindingSupport.addValidationRule(rule, ValidationTime.ON_UPDATE_TO_MODEL); target.setValue("value"); // $NON-NLS-1$ assertEquals(1, markable.getMarkersOfType(ValidationMessageMarker.class).size()); valueBindingSupport.removeValidationRule(rule); assertEquals(0, markable.getMarkersOfType(ValidationMessageMarker.class).size()); }
public void testAddAndRemoveValidationMessageWithoutRule() { assertEquals(0, markable.getMarkersOfType(ValidationMessageMarker.class).size()); final MinLength rule = new MinLength(3); valueBindingSupport.addValidationRule(rule, ValidationTime.ON_UPDATE_TO_MODEL); valueBindingSupport.addValidationMessage("too short"); // $NON-NLS-1$ target.setValue("a"); // $NON-NLS-1$ assertEquals(1, markable.getMarkersOfType(ValidationMessageMarker.class).size()); assertMessageMarkers("too short"); // $NON-NLS-1$ valueBindingSupport.removeValidationMessage("too short"); // $NON-NLS-1$ assertEquals(0, markable.getMarkersOfType(ValidationMessageMarker.class).size()); }
/** As per Bug 289458 */ public void testShowErrorAfterValidationOnUpdateWithBlock() { final ValidRange rule = new ValidRange(18, 80); valueBindingSupport.addValidationRule(rule, ValidationTime.ON_UPDATE_TO_MODEL); final IStatus errorStatus = rule.validate("81"); // $NON-NLS-1$ assertEquals(ValidationRuleStatus.ERROR_BLOCK_WITH_FLASH, errorStatus.getCode()); assertEquals(0, markable.getMarkersOfType(ErrorMarker.class).size()); valueBindingSupport.updateValidationStatus(rule, errorStatus); assertEquals(1, markable.getMarkersOfType(ErrorMarker.class).size()); final IStatus okStatus = rule.validate("80"); // $NON-NLS-1$ valueBindingSupport.updateValidationStatus(rule, okStatus); assertEquals(0, markable.getMarkersOfType(ErrorMarker.class).size()); }
private void assertMessageMarkers(final String... messages) { final Collection<String> missingMessages = new ArrayList<String>(Arrays.asList(messages)); for (final IMessageMarker messageMarker : markable.getMarkersOfType(IMessageMarker.class)) { missingMessages.remove(messageMarker.getMessage()); } assertTrue( "missing MessageMarker for " + missingMessages, missingMessages.isEmpty()); // $NON-NLS-1$ }
/** Tests that adding the same validation several times has no effect */ public void testAddSameValidationMessage() { final EvenNumberOfCharacters rule = new EvenNumberOfCharacters(); valueBindingSupport.addValidationRule(rule, ValidationTime.ON_UPDATE_TO_MODEL); valueBindingSupport.addValidationMessage("TestMessage1"); // $NON-NLS-1$ valueBindingSupport.addValidationMessage("TestMessage1"); // $NON-NLS-1$ valueBindingSupport.addValidationMessage("TestMessage2", rule); // $NON-NLS-1$ valueBindingSupport.addValidationMessage("TestMessage2", rule); // $NON-NLS-1$ final MessageMarker messageMarker = new MessageMarker("TestMessage3"); // $NON-NLS-1$ valueBindingSupport.addValidationMessage(messageMarker); valueBindingSupport.addValidationMessage(messageMarker); final MessageMarker messageMarker2 = new MessageMarker("TestMessage4"); // $NON-NLS-1$ valueBindingSupport.addValidationMessage(messageMarker2, rule); valueBindingSupport.addValidationMessage(messageMarker2, rule); assertEquals(0, markable.getMarkers().size()); target.setValue("odd"); // $NON-NLS-1$ assertEquals(4, markable.getMarkersOfType(ValidationMessageMarker.class).size()); target.setValue("even"); // $NON-NLS-1$ assertEquals(0, markable.getMarkers().size()); }