supertramp supertramp - 1 year ago 129
Java Question

Can I use Citrus variable in Citrus static response adapter payload?

I am using static response endpoint adapter to return a mock service response taken from a resource file:

private void setAdapterResponse(StaticResponseEndpointAdapter adapter, String response) throws IOException{

URL url = Resources.getResource(response);
adapter.setMessagePayload(Resources.toString(url, Charsets.UTF_8));
}

@Autowired
private Endpoint helloSoapClient;

@Autowired
private WebServiceServer helloMockService;

@Autowired
private StaticResponseEndpointAdapter helloResponseAdapter;

@CitrusTest(name = "HELLO_WORLD")
public void sendAndReceiveMessage() throws IOException{

variable("randomRequestIdentifier", "9978111203033");
variable("constantDate", "201301010000");

setAdapterResponse(helloResponseAdapter, "templates/helloResponses/ReqIdGenerator.xml");

send(helloSoapClient)
.payload(new ClassPathResource("templates/helloRequests/HelloRequest028.xml"));
receive(helloSoapClient)
.payload(new ClassPathResource("templates/helloResponses/HelloResponse028.xml"));
}



private void setAdapterResponse(StaticResponseEndpointAdapter adapter, String response) throws IOException{

URL url = Resources.getResource(response);
adapter.setMessagePayload(Resources.toString(url, Charsets.UTF_8));
}


the file templates/helloResponses/ReqIdGenerator.xml contents is:

<xml>
<id>${randomRequestIdentifier}</id>
</xml>


I thought that variable should be replaced with its current value. Am I wrong? Is there a build-in mechanism to support variables in Citrus Endpoint Responses?

Answer Source

The static response adapter and endpoint adapters in general do not support test variables at the moment.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download