Class JsonTextMessageValidator
java.lang.Object
org.citrusframework.validation.AbstractMessageValidator<JsonMessageValidationContext>
org.citrusframework.validation.json.JsonTextMessageValidator
- All Implemented Interfaces:
MessageValidator<JsonMessageValidationContext>
public class JsonTextMessageValidator
extends AbstractMessageValidator<JsonMessageValidationContext>
This message validator implementation is able to validate two JSON text objects. The order of JSON entries can differ
as specified in JSON protocol. Tester defines an expected control JSON text with optional ignored entries.
JSONArray as well as nested JSONObjects are supported, too.
Validator offers two different modes to operate. By default strict mode is set and the validator will also check the exact amount of
control object fields to match. No additional fields in received JSON data structure will be accepted. In soft mode validator
allows additional fields in received JSON data structure so the control JSON object can be a partial subset.
- Author:
- Christoph Deppisch
-
Field Summary
Fields inherited from interface org.citrusframework.validation.MessageValidator
logger, RESOURCE_PATH, TYPE_RESOLVER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<JsonMessageValidationContext>booleanisIgnored(String controlKey, Object controlValue, Object receivedJson, Set<String> ignoreExpressions, com.jayway.jsonpath.ReadContext readContext) Checks if given element node is either on ignore list or contains @ignore@ tag inside control messagejsonSchemaValidation(JsonSchemaValidation jsonSchemaValidation) Sets the json schema validation.permissiveMode(int permissiveMode) Sets the permissive modevoidsetPermissiveMode(int permissiveMode) Sets the permissive mode.voidsetStrict(boolean strict) Set the validator strict mode.strict(boolean strict) Set the validator strict mode.booleansupportsMessageType(String messageType, Message message) voidvalidateJson(String elementName, net.minidev.json.JSONObject receivedJson, net.minidev.json.JSONObject controlJson, JsonMessageValidationContext validationContext, TestContext context, com.jayway.jsonpath.ReadContext readContext) Validates JSON text with comparison to expected control JSON object.voidvalidateMessage(Message receivedMessage, Message controlMessage, TestContext context, JsonMessageValidationContext validationContext) Methods inherited from class org.citrusframework.validation.AbstractMessageValidator
findValidationContext, validateMessage
-
Constructor Details
-
JsonTextMessageValidator
public JsonTextMessageValidator()
-
-
Method Details
-
validateMessage
public void validateMessage(Message receivedMessage, Message controlMessage, TestContext context, JsonMessageValidationContext validationContext) - Overrides:
validateMessagein classAbstractMessageValidator<JsonMessageValidationContext>
-
validateJson
public void validateJson(String elementName, net.minidev.json.JSONObject receivedJson, net.minidev.json.JSONObject controlJson, JsonMessageValidationContext validationContext, TestContext context, com.jayway.jsonpath.ReadContext readContext) Validates JSON text with comparison to expected control JSON object. JSON entries can be ignored with ignore placeholder.- Parameters:
elementName- the current element name that is under verification in this methodreceivedJson- the received JSON text object.controlJson- the expected control JSON text.validationContext- the JSON message validation context.context- the current test context.readContext- the JSONPath read context.
-
isIgnored
public boolean isIgnored(String controlKey, Object controlValue, Object receivedJson, Set<String> ignoreExpressions, com.jayway.jsonpath.ReadContext readContext) Checks if given element node is either on ignore list or contains @ignore@ tag inside control message- Parameters:
controlKey-controlValue-receivedJson-ignoreExpressions-readContext-- Returns:
-
getRequiredValidationContextType
- Specified by:
getRequiredValidationContextTypein classAbstractMessageValidator<JsonMessageValidationContext>
-
supportsMessageType
-
setStrict
public void setStrict(boolean strict) Set the validator strict mode.- Parameters:
strict-
-
strict
Set the validator strict mode.- Parameters:
strict-- Returns:
- this object for chaining
-
jsonSchemaValidation
Sets the json schema validation.- Parameters:
jsonSchemaValidation-- Returns:
- this object for chaining
-
setPermissiveMode
public void setPermissiveMode(int permissiveMode) Sets the permissive mode.- Parameters:
permissiveMode-
-
permissiveMode
Sets the permissive mode- Parameters:
permissiveMode-- Returns:
- this object for chaining
-