Пример #1
0
  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());
  }
Пример #2
0
  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());
  }
Пример #3
0
  /** 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());
  }
Пример #4
0
  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$
  }
Пример #5
0
  /** 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());
  }