Search code examples
mockingmuleurl-parametersmunit

Mule Munit mock http.uri.params


i have a flow where using http I have a GET call where it hits a like like

https://localhost:8081/ref/{ID}

I know i can get this parameter in code by using mel like:

#[message.inboundProperties.'http.uri.params'.ID]

I need to mock the uri params when i set the message but have not been sucessful. i have tried setting in the "set message" using this name

'http.uri.params'.ID

but it seems to error out when i run the test.

this is on mule server 3.7.3 using munit flows


Solution

  • Remember that the http.uri.params inbound property actually contains a Map, which in turn contains entries that represent the actual parameters.

    You will need to set a mock inbound property named http.uri.params whose value is a Map that contains an entry with key "ID" and the value you want. Remember that in MEL, you can create a map using [key1 : value1, key2 : value2, . . .].

    Like so:

    <mock:inbound-properties>
         <mock:inbound-property key="http.uri.params" value="#[['ID': '123']]"/>
    </mock:inbound-properties>