Interface MessageValidator<T extends ValidationContext>

All Known Implementing Classes:
AbstractMessageValidator, DefaultEmptyMessageValidator, DefaultMessageValidator, DefaultTextEqualsMessageValidator

public interface MessageValidator<T extends ValidationContext>
Message validator interface. Message validation need specific information like control messages or validation scripts. These validation specific information is stored in a validation context, which is passed to the validation method.
Author:
Christoph Deppisch
  • Field Details

    • logger

      static final org.slf4j.Logger logger
      Logger
    • RESOURCE_PATH

      static final String RESOURCE_PATH
      Message validator resource lookup path
      See Also:
    • TYPE_RESOLVER

      static final TypeResolver TYPE_RESOLVER
      Type resolver to find custom message validators on classpath via resource path lookup
  • Method Details

    • lookup

      static Map<String,MessageValidator<? extends ValidationContext>> lookup()
      Resolves all available validators from resource path lookup. Scans classpath for validator meta information and instantiates those validators.
      Returns:
    • lookup

      static Optional<MessageValidator<? extends ValidationContext>> lookup(String validator)
      Resolves validator from resource path lookup with given validator resource name. Scans classpath for validator meta information with given name and returns instance of validator. Returns optional instead of throwing exception when no validator could be found.
      Parameters:
      validator -
      Returns:
    • validateMessage

      void validateMessage(Message receivedMessage, Message controlMessage, TestContext context, List<ValidationContext> validationContexts) throws ValidationException
      Validates a message with given test context and validation context.
      Parameters:
      receivedMessage - the message to validate.
      controlMessage - the expected control message.
      context - the current test context.
      validationContexts - list of available validation contexts.
      Throws:
      ValidationException
    • supportsMessageType

      boolean supportsMessageType(String messageType, Message message)
      Checks if this message validator is capable of this message type. XML message validators may only apply to this message type while JSON message validator implementations do not and vice versa. This check is called by the MessageValidatorRegistry in order to find a proper message validator for a message.
      Parameters:
      messageType - the message type representation as String (e.g. xml, json, csv, plaintext).
      message - the message object
      Returns:
      true if this message validator is capable of validating the message type.