Могу ли я использовать переменную Citrus в полезной нагрузке адаптера статического ответа Citrus?

Я использую адаптер конечной точки статического ответа, чтобы вернуть фиктивный ответ службы, взятый из файла ресурсов:

            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));
            }

содержимое файла templates/helloResponses/ReqIdGenerator.xml:

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

Я думал, что эту переменную следует заменить ее текущим значением. Я ошибаюсь? Есть ли встроенный механизм для поддержки переменных в Citrus Endpoint Responses?


person supertramp    schedule 02.11.2016    source источник


Ответы (1)


Адаптер статического ответа и адаптеры конечной точки в целом в настоящее время не поддерживают тестовые переменные.

Изменить: начиная с Citrus 2.6.2 вы можете использовать тестовые переменные в адаптере статического ответа. См. документацию здесь: http://www.citrusframework.org/reference/html/endpoint-adapter.html#static-response-endpoint-adapter

person Christoph Deppisch    schedule 07.11.2016
comment
Ok. Спасибо за ответ. Поэтому я хотел бы написать механизм поиска и замены, который будет выполнять эту работу. Но могу ли я собрать все переменные, определенные в тестовом примере? Что-то вроде getAllVariables()? - person supertramp; 07.11.2016