{
  "name": "MUnit Tools",
  "description": "\u003cp\u003e MUnit Tools to perform testing on mule \u003c/p\u003e",
  "version": "2.3.5",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "xmlDsl": {
    "prefix": "munit-tools",
    "namespace": "http://www.mulesoft.org/schema/mule/munit-tools",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/munit-tools/current/mule-munit-tools.xsd",
    "schemaVersion": "2.3.5",
    "xsdFileName": "mule-munit-tools.xsd"
  },
  "resources": [
    "MunitTools.dwl",
    "dw/test/Asserts.dwl",
    "dw/test/internal/Utils.dwl"
  ],
  "subTypes": [],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.runtime.api.store.ObjectStore",
        "extensibleType": {},
        "typeAlias": {
          "value": "ObjectStore"
        },
        "classInformation": {
          "classname": "org.mule.runtime.api.store.ObjectStore",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        }
      },
      "fields": []
    }
  ],
  "configurations": [
    {
      "stereotype": {
        "type": "CONFIG",
        "namespace": "MUNIT-TOOLS",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [],
      "externalLibraryModels": [],
      "operations": [],
      "connectionProviders": [],
      "messageSources": [],
      "name": "config",
      "description": "Default configuration",
      "modelProperties": {}
    }
  ],
  "operations": [
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:INVALID_ASSERTION"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.munit.assertion.api.expression.MatcherResult"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[import * from dw::test::Asserts \n ---\npayload must notBeNull()]",
              "role": "PRIMARY_CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "that",
              "displayModel": {
                "displayName": "Expression"
              },
              "description": "result of the assertion expression",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "Assertion failed",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "message",
              "description": "message in case the assertion fails",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "assert",
      "displayModel": {
        "displayName": "Assert expression",
        "summary": "Asserts that an expression is successful"
      },
      "description": "Evaluates if the given that assertion expression is successful. If the assertion fails, it throws an AssertionError",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "actual",
              "displayModel": {
                "example": "#[payload]"
              },
              "description": "actual value to be asserted",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "expected",
              "displayModel": {
                "example": "#[\u0027EXAMPLE\u0027]"
              },
              "description": "expected value of the assertion",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "message",
              "description": "message in case the assertion fails",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "assertEquals",
      "displayModel": {
        "summary": "Check if an expression is equal to a value"
      },
      "description": "Checks if the given actual value is equal to the expected value. If they differ, an AssertionError is thrown.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "expression",
              "displayModel": {
                "example": "#[payload]"
              },
              "description": "value to be asserted",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.munit.assertion.api.matchers.Matcher"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "REQUIRED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "is",
              "displayModel": {
                "example": "#[MunitTools::notNullValue()]"
              },
              "description": "matcher to validate against the expression",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "message",
              "description": "message in case the assertion fails",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "assertThat",
      "displayModel": {
        "summary": "Perform an assertion over an expression"
      },
      "description": "Checks if the expression matches the given is Matcher. If the assertion fails, it throws an AssertionError",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [],
      "name": "clearStoredData",
      "displayModel": {
        "summary": "Clears all stored data"
      },
      "description": "Removes all stored data",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Object",
          "annotations": {
            "typeId": "java.io.Serializable",
            "classInformation": {
              "classname": "java.io.Serializable",
              "hasDefaultConstructor": false,
              "isInterface": true,
              "isInstantiable": false,
              "isAbstract": true,
              "isFinal": false,
              "implementedInterfaces": [],
              "parent": "",
              "genericTypes": [],
              "isMap": false
            },
            "typeAlias": {
              "value": "Serializable"
            }
          },
          "fields": []
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:QUEUE_TIMEOUT"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "queueName",
              "description": "The name of the queue where dequeue a value",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Long",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "10000",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "timeout",
              "description": "Time to wait for a value until the connector throws a QUEUE_TIMEOUT error",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.util.concurrent.TimeUnit",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NANOSECONDS",
                      "MICROSECONDS",
                      "MILLISECONDS",
                      "SECONDS",
                      "MINUTES",
                      "HOURS",
                      "DAYS"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "MILLISECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "timeoutUnit",
              "description": "Time Unit to use to wait for a value to arrive",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "target",
              "displayModel": {
                "displayName": "Target Variable"
              },
              "description": "The name of a variable on which the operation\u0027s output will be placed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "targetValue",
              "displayModel": {
                "displayName": "Target Value"
              },
              "description": "An expression that will be evaluated against the operation\u0027s output and the outcome of that expression will be stored in the target variable",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 2
          },
          "showInDsl": false,
          "name": "Output",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "dequeue",
      "description": "Pops the given data from a temporary queue.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "message",
              "description": "message for the assertion failure",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "fail",
      "displayModel": {
        "summary": "Fail with an assertion"
      },
      "description": "Fails with a AssertionError with the given message",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "processor",
              "displayModel": {
                "example": "http:request"
              },
              "description": "identifier of the processor to mock",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "classInformation": {
                    "classname": "java.util.List",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [
                      "java.util.Collection"
                    ],
                    "parent": "",
                    "genericTypes": [
                      "org.mule.munit.common.model.Attribute"
                    ],
                    "isMap": false
                  }
                },
                "item": {
                  "type": "@ref:org.mule.munit.common.model.Attribute"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "withAttributes",
              "description": "additional attributes to identify the processor",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.munit.common.model.Event"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "thenReturn",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.munit.common.model.FlowName"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4
              },
              "allowedStereotypeModels": [],
              "name": "thenCall",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [
            {
              "exclusiveParameterNames": [
                "thenReturn",
                "thenCall"
              ],
              "isOneRequired": false
            }
          ],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 2
          },
          "showInDsl": false,
          "name": "Answer",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "mockWhen",
      "displayModel": {
        "summary": "Mock the Processor when it matches processor name and attributes"
      },
      "description": "Mocks the processor that has the given withAttributes, replacing it with the given answer. \u003cp\u003e During the test execution, if any processor tries to be executed, and it matches the processor name and the withAttributes, its execution its not performed, and instead the answer is used. If Answer#getThenReturn() thenReturn is specified, then that event is returned, or if Answer#getThenCall() thenCall is specified, the given flow is invoked, and the resulting event is returned. If no Answer is specified, the incoming event is returned.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:QUEUE_TIMEOUT"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.io.Serializable",
                  "classInformation": {
                    "classname": "java.io.Serializable",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Serializable"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[payload]",
              "role": "PRIMARY_CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "value",
              "description": "Value to queue",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "queueName",
              "description": "The name of the queue where dequeue a value",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "queue",
      "description": "Pushes the given value to a temporary queue so this can be consumed later on demand",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Object",
          "annotations": {
            "typeId": "java.io.Serializable",
            "classInformation": {
              "classname": "java.io.Serializable",
              "hasDefaultConstructor": false,
              "isInterface": true,
              "isInstantiable": false,
              "isAbstract": true,
              "isFinal": false,
              "implementedInterfaces": [],
              "parent": "",
              "genericTypes": [],
              "isMap": false
            },
            "typeAlias": {
              "value": "Serializable"
            }
          },
          "fields": []
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:INVALID_KEY",
        "MUNIT-TOOLS:MISSING_KEY"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "key",
              "description": "the key of the object to be removed",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "target",
              "displayModel": {
                "displayName": "Target Variable"
              },
              "description": "The name of a variable on which the operation\u0027s output will be placed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "targetValue",
              "displayModel": {
                "displayName": "Target Value"
              },
              "description": "An expression that will be evaluated against the operation\u0027s output and the outcome of that expression will be stored in the target variable",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 2
          },
          "showInDsl": false,
          "name": "Output",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "remove",
      "displayModel": {
        "summary": "Removes the data associated with the given key"
      },
      "description": "Removes the value associated to the given key. \u003cp\u003e If no value exist for the key, then a MUNIT-TOOLS:MISSING_KEY error will be thrown.This operation is synchronized on the key level. No other operation will be able to access the same key while this operation is running.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Object",
          "annotations": {
            "typeId": "java.io.Serializable",
            "classInformation": {
              "classname": "java.io.Serializable",
              "hasDefaultConstructor": false,
              "isInterface": true,
              "isInstantiable": false,
              "isAbstract": true,
              "isFinal": false,
              "implementedInterfaces": [],
              "parent": "",
              "genericTypes": [],
              "isMap": false
            },
            "typeAlias": {
              "value": "Serializable"
            }
          },
          "fields": []
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:INVALID_KEY",
        "MUNIT-TOOLS:MISSING_KEY"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "key",
              "description": "the key of the value to be retrieved",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "target",
              "displayModel": {
                "displayName": "Target Variable"
              },
              "description": "The name of a variable on which the operation\u0027s output will be placed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "targetValue",
              "displayModel": {
                "displayName": "Target Value"
              },
              "description": "An expression that will be evaluated against the operation\u0027s output and the outcome of that expression will be stored in the target variable",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 2
          },
          "showInDsl": false,
          "name": "Output",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "retrieve",
      "displayModel": {
        "summary": "Retrieves the data associated with the given key"
      },
      "description": "Retrieves the value stored for the given key. \u003cp\u003e If no value exists for the key, then a MUNIT-TOOLS:MISSING_KEY error will be thrown. This operations is synchronized on the key level. No other operation will be able to access the same key while this operation is running",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "assertion",
              "displayModel": {
                "example": "com.example.CustomAssertion",
                "classValueModel": {
                  "assignableFrom": [
                    "org.mule.munit.assertion.api.MunitAssertion"
                  ]
                }
              },
              "description": "full qualified name of the custom assertion class",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "expression",
              "displayModel": {
                "example": "#[payload]"
              },
              "description": "value to be asserted",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "params",
              "description": "parameters of the custom assertion",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "runCustom",
      "displayModel": {
        "summary": "Run a custom assertion"
      },
      "description": "Runs a custom assertion over the given expression with the parameters params \u003cp\u003e The assertion must implement MunitAssertion",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Long",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "time",
              "description": "The length of time to sleep",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.util.concurrent.TimeUnit",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NANOSECONDS",
                      "MICROSECONDS",
                      "MILLISECONDS",
                      "SECONDS",
                      "MINUTES",
                      "HOURS",
                      "DAYS"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "MILLISECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "timeUnit",
              "description": "Time Unit to use to sleep",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "sleep",
      "description": "Causes the currently executing thread to sleep",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:INVALID_KEY",
        "MUNIT-TOOLS:KEY_ALREADY_EXISTS"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "key",
              "description": "the key of the value to be stored",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.io.Serializable",
                  "classInformation": {
                    "classname": "java.io.Serializable",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Serializable"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[payload]",
              "role": "PRIMARY_CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "value",
              "description": "the value to be stored",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "failIfPresent",
              "description": "whether to fail or update the pre existing value if the key already exists on the store",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "store",
      "displayModel": {
        "summary": "Stores the given data associated with the given key"
      },
      "description": "Stores the given value using the given key. \u003cp\u003e This operation can be used either for storing new values or updating existing ones. This operation is synchronized on the key level. No other operation will be able to access the same key.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "MUNIT-TOOLS:KEY_ALREADY_EXISTS"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "accessToken",
              "description": "the access token",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.runtime.api.store.ObjectStore"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [
                {
                  "type": "OBJECT_STORE",
                  "namespace": "OS"
                }
              ],
              "name": "objectStore",
              "description": "the object store to store the token in",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "ownerConfigName",
              "description": "the config name of the connector that\u0027s going to consume the token",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4
              },
              "allowedStereotypeModels": [],
              "name": "resourceOwnerId",
              "description": "the id of the resource owner",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5
              },
              "allowedStereotypeModels": [],
              "name": "refreshToken",
              "description": "the refresh token",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6
              },
              "allowedStereotypeModels": [],
              "name": "expiresIn",
              "description": "the expiration string",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7
              },
              "allowedStereotypeModels": [],
              "name": "state",
              "description": "the state parameter used in the OAuth dance",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "classInformation": {
                    "classname": "java.util.Map",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [
                      "java.lang.String",
                      "java.lang.Object"
                    ],
                    "isMap": true
                  }
                },
                "open": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.lang.Object",
                    "classInformation": {
                      "classname": "java.lang.Object",
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": false,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": [],
                      "isMap": false
                    },
                    "typeAlias": {
                      "value": "Object"
                    }
                  },
                  "fields": []
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "PRIMARY_CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8
              },
              "allowedStereotypeModels": [],
              "name": "additionalParameters",
              "description": "additional parameters returned by the service provider",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "true",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 9
              },
              "allowedStereotypeModels": [],
              "name": "overwrite",
              "description": "whether to overwrite the token if already exists or fail instead.",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "store-oauth-token",
      "description": "Stores a test OAuth token in the supplied ObjectStore",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "processor",
              "displayModel": {
                "example": "mule:logger"
              },
              "description": "identifier of the processor to mock",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "classInformation": {
                    "classname": "java.util.List",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [
                      "java.util.Collection"
                    ],
                    "parent": "",
                    "genericTypes": [
                      "org.mule.munit.common.model.Attribute"
                    ],
                    "isMap": false
                  }
                },
                "item": {
                  "type": "@ref:org.mule.munit.common.model.Attribute"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "withAttributes",
              "description": "additional attributes to identify the processor",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Integer",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "allowedStereotypeModels": [],
              "name": "times",
              "description": "exact number of times the processor should have been executed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Integer",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4
              },
              "allowedStereotypeModels": [],
              "name": "atLeast",
              "description": "minimum number of times the processor should have been executed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Integer",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5
              },
              "allowedStereotypeModels": [],
              "name": "atMost",
              "description": "maximum number of times the processor should have been executed",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "verifyCall",
      "displayModel": {
        "summary": "Verify that a processor is called"
      },
      "description": "Verifies that the processor that has the given withAttributes has been executed. \u003cp\u003e During the test execution, if any processor is executed, and it matches the processor name and the withAttributes it will be counted as called. \u003cp\u003e If the processor was not called the specified number of times, it will throw an AssertionError",
      "modelProperties": {},
      "kind": "operation"
    }
  ],
  "functions": [],
  "constructs": [
    {
      "allowsTopLevelDefinition": false,
      "nestedComponents": [
        {
          "minOccurs": 0,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "beforeCall",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        },
        {
          "minOccurs": 0,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "afterCall",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        }
      ],
      "errors": [],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "processor",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "classInformation": {
                    "classname": "java.util.List",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [
                      "java.util.Collection"
                    ],
                    "parent": "",
                    "genericTypes": [
                      "org.mule.munit.common.model.Attribute"
                    ],
                    "isMap": false
                  }
                },
                "item": {
                  "type": "@ref:org.mule.munit.common.model.Attribute"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "withAttributes",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "spy",
      "description": "",
      "modelProperties": {},
      "kind": "construct"
    }
  ],
  "connectionProviders": [],
  "messageSources": [],
  "notifications": [],
  "errors": [
    {
      "error": "MUNIT-TOOLS:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "MULE:RETRY_EXHAUSTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "MULE:CONNECTIVITY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:INVALID_ASSERTION",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:SLEEP_INTERRUPT",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:INVALID_KEY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:MISSING_KEY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:KEY_ALREADY_EXISTS",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MUNIT-TOOLS:QUEUE_TIMEOUT",
      "parent": "MULE:ANY",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.assertion.api.MunitAssertion",
        "classInformation": {
          "classname": "org.mule.munit.assertion.api.MunitAssertion",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "MunitAssertion"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.assertion.api.expression.MatcherResult",
        "classInformation": {
          "classname": "org.mule.munit.assertion.api.expression.MatcherResult",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "MatcherResult"
        }
      },
      "fields": [
        {
          "key": {
            "name": "description"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.munit.assertion.api.expression.MatcherResult.Description",
              "classInformation": {
                "classname": "org.mule.munit.assertion.api.expression.MatcherResult.Description",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "Description"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "actual"
                },
                "model": {
                  "type": "String"
                }
              },
              {
                "key": {
                  "name": "expected"
                },
                "model": {
                  "type": "String"
                }
              }
            ]
          }
        },
        {
          "key": {
            "name": "matches"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          }
        },
        {
          "key": {
            "name": "reasons"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "java.lang.String"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "String"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.assertion.api.matchers.Diff",
        "classInformation": {
          "classname": "org.mule.munit.assertion.api.matchers.Diff",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "Diff"
        }
      },
      "fields": [
        {
          "key": {
            "name": "diffs"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.assertion.api.matchers.Diff$Difference"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.assertion.api.matchers.Diff.Difference",
                "classInformation": {
                  "classname": "org.mule.munit.assertion.api.matchers.Diff.Difference",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Difference"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "actual"
                  },
                  "model": {
                    "type": "String"
                  }
                },
                {
                  "key": {
                    "name": "actualWithLocation"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "expected"
                  },
                  "model": {
                    "type": "String"
                  }
                },
                {
                  "key": {
                    "name": "path"
                  },
                  "model": {
                    "type": "String"
                  }
                }
              ]
            }
          }
        },
        {
          "key": {
            "name": "matches"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "java.lang.Boolean"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.assertion.api.matchers.Matcher",
        "classInformation": {
          "classname": "org.mule.munit.assertion.api.matchers.Matcher",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "Matcher"
        }
      },
      "fields": [
        {
          "key": {
            "name": "expected"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Object[]",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": true,
                "implementedInterfaces": [
                  "java.lang.Cloneable",
                  "java.io.Serializable"
                ],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "classname": "java.lang.Object",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            }
          }
        },
        {
          "key": {
            "name": "type"
          },
          "model": {
            "type": "String"
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.common.behavior.BehaviorManager",
        "classInformation": {
          "classname": "org.mule.munit.common.behavior.BehaviorManager",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "BehaviorManager"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.common.model.Attribute",
        "classInformation": {
          "classname": "org.mule.munit.common.model.Attribute",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "with-attribute"
        }
      },
      "fields": [
        {
          "key": {
            "name": "attributeName",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 0,
                "tabName": "General"
              }
            }
          }
        },
        {
          "key": {
            "name": "whereValue",
            "required": "true"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.lang.Object",
              "classInformation": {
                "classname": "java.lang.Object",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "Object"
              }
            },
            "fields": []
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "parameterDsl": {
              "allowInlineDefinition": true,
              "allowReferences": false
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "General"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.common.model.Event",
        "classInformation": {
          "classname": "org.mule.munit.common.model.Event",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "Event"
        }
      },
      "fields": [
        {
          "key": {
            "name": "payload"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.munit.common.model.Payload",
              "classInformation": {
                "classname": "org.mule.munit.common.model.Payload",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "Payload"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "value",
                  "required": "true"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.lang.Object",
                    "classInformation": {
                      "classname": "java.lang.Object",
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": false,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": [],
                      "isMap": false
                    },
                    "typeAlias": {
                      "value": "Object"
                    }
                  },
                  "fields": []
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "mediaType"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "example": "application/java"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "encoding"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 2,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "example": "UTF-8"
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "attributes"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.munit.common.model.EventAttributes",
              "classInformation": {
                "classname": "org.mule.munit.common.model.EventAttributes",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "EventAttributes"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "value",
                  "required": "true"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.lang.Object",
                    "classInformation": {
                      "classname": "java.lang.Object",
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": false,
                      "implementedInterfaces": [],
                      "parent": "",
                      "genericTypes": [],
                      "isMap": false
                    },
                    "typeAlias": {
                      "value": "Object"
                    }
                  },
                  "fields": []
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "mediaType"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 2,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "example": "application/java"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "encoding"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 3,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "example": "UTF-8"
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "error"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.munit.common.model.EventError",
              "classInformation": {
                "classname": "org.mule.munit.common.model.EventError",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "EventError"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "typeId"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "example": "ANY"
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "cause"
                },
                "model": {
                  "type": "Object",
                  "annotations": {
                    "typeId": "java.lang.Throwable",
                    "classInformation": {
                      "classname": "java.lang.Throwable",
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": true,
                      "isAbstract": false,
                      "isFinal": false,
                      "implementedInterfaces": [
                        "java.io.Serializable"
                      ],
                      "parent": "",
                      "genericTypes": [],
                      "isMap": false
                    },
                    "typeAlias": {
                      "value": "Throwable"
                    }
                  },
                  "fields": [
                    {
                      "key": {
                        "name": "cause"
                      },
                      "model": "#..",
                      "annotations": {
                        "visibility": "READ_ONLY"
                      }
                    },
                    {
                      "key": {
                        "name": "localizedMessage"
                      },
                      "model": {
                        "type": "String"
                      },
                      "annotations": {
                        "visibility": "READ_ONLY"
                      }
                    },
                    {
                      "key": {
                        "name": "message"
                      },
                      "model": {
                        "type": "String"
                      },
                      "annotations": {
                        "visibility": "READ_ONLY"
                      }
                    },
                    {
                      "key": {
                        "name": "stackTrace"
                      },
                      "model": {
                        "type": "Array",
                        "annotations": {
                          "classInformation": {
                            "classname": "java.lang.StackTraceElement[]",
                            "hasDefaultConstructor": false,
                            "isInterface": false,
                            "isInstantiable": false,
                            "isAbstract": true,
                            "isFinal": true,
                            "implementedInterfaces": [
                              "java.lang.Cloneable",
                              "java.io.Serializable"
                            ],
                            "parent": "",
                            "genericTypes": [],
                            "isMap": false
                          }
                        },
                        "item": {
                          "type": "Object",
                          "annotations": {
                            "typeId": "java.lang.StackTraceElement",
                            "classInformation": {
                              "classname": "java.lang.StackTraceElement",
                              "hasDefaultConstructor": false,
                              "isInterface": false,
                              "isInstantiable": false,
                              "isAbstract": false,
                              "isFinal": true,
                              "implementedInterfaces": [
                                "java.io.Serializable"
                              ],
                              "parent": "",
                              "genericTypes": [],
                              "isMap": false
                            },
                            "typeAlias": {
                              "value": "StackTraceElement"
                            }
                          },
                          "fields": [
                            {
                              "key": {
                                "name": "className"
                              },
                              "model": {
                                "type": "String"
                              },
                              "annotations": {
                                "visibility": "READ_ONLY"
                              }
                            },
                            {
                              "key": {
                                "name": "fileName"
                              },
                              "model": {
                                "type": "String"
                              },
                              "annotations": {
                                "visibility": "READ_ONLY"
                              }
                            },
                            {
                              "key": {
                                "name": "lineNumber"
                              },
                              "model": {
                                "type": "Number",
                                "annotations": {
                                  "classInformation": {
                                    "classname": "int",
                                    "hasDefaultConstructor": false,
                                    "isInterface": false,
                                    "isInstantiable": false,
                                    "isAbstract": true,
                                    "isFinal": true,
                                    "implementedInterfaces": [],
                                    "parent": "",
                                    "genericTypes": [],
                                    "isMap": false
                                  },
                                  "int": {}
                                }
                              },
                              "annotations": {
                                "visibility": "READ_ONLY"
                              }
                            },
                            {
                              "key": {
                                "name": "methodName"
                              },
                              "model": {
                                "type": "String"
                              },
                              "annotations": {
                                "visibility": "READ_ONLY"
                              }
                            },
                            {
                              "key": {
                                "name": "nativeMethod"
                              },
                              "model": {
                                "type": "Boolean",
                                "annotations": {
                                  "typeId": "boolean"
                                }
                              },
                              "annotations": {
                                "visibility": "READ_ONLY"
                              }
                            }
                          ]
                        }
                      }
                    },
                    {
                      "key": {
                        "name": "suppressed"
                      },
                      "model": {
                        "type": "Array",
                        "annotations": {
                          "classInformation": {
                            "classname": "java.lang.Throwable[]",
                            "hasDefaultConstructor": false,
                            "isInterface": false,
                            "isInstantiable": false,
                            "isAbstract": true,
                            "isFinal": true,
                            "implementedInterfaces": [
                              "java.lang.Cloneable",
                              "java.io.Serializable"
                            ],
                            "parent": "",
                            "genericTypes": [],
                            "isMap": false
                          }
                        },
                        "item": "#../.."
                      },
                      "annotations": {
                        "visibility": "READ_ONLY"
                      }
                    }
                  ]
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "REQUIRED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "variables"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Variable"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Variable",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Variable",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Variable"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "sessionProperties"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Property"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Property",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Property",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Property"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "inboundProperties"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Property"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Property",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Property",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Property"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "outboundProperties"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Property"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Property",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Property",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Property"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "inboundAttachments"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Attachment"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Attachment",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Attachment",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Attachment"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "outboundAttachments"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Collection"
                ],
                "parent": "",
                "genericTypes": [
                  "org.mule.munit.common.model.Attachment"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.munit.common.model.Attachment",
                "classInformation": {
                  "classname": "org.mule.munit.common.model.Attachment",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.munit.common.model.DefaultTypedKeyValue",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "Attachment"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 0,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "value",
                    "required": "true"
                  },
                  "model": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "classInformation": {
                        "classname": "java.lang.Object",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "Object"
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 1,
                        "tabName": "General"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "mediaType"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 2,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "application/java"
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "encoding"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    },
                    "layout": {
                      "layoutModel": {
                        "password": false,
                        "text": false,
                        "query": false,
                        "order": 3,
                        "tabName": "General"
                      }
                    },
                    "display": {
                      "displayModel": {
                        "example": "UTF-8"
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.common.model.FlowName",
        "classInformation": {
          "classname": "org.mule.munit.common.model.FlowName",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "FlowName"
        }
      },
      "fields": [
        {
          "key": {
            "name": "flow",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "stereotype": {
              "allowedStereotypes": [
                {
                  "type": "FLOW",
                  "namespace": "MULE"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.tools.util.GetResourceFunctions",
        "classInformation": {
          "classname": "org.mule.munit.tools.util.GetResourceFunctions",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "GetResourceFunctions"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.munit.tools.util.queue.api.TemporaryQueueRule",
        "classInformation": {
          "classname": "org.mule.munit.tools.util.queue.api.TemporaryQueueRule",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.munit.runner.component.rules.TestRule",
            "org.mule.runtime.api.lifecycle.Initialisable"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "TemporaryQueueRule"
        }
      },
      "fields": []
    }
  ]
}
