0

Я использую статический адаптер ответ конечной точки, чтобы вернуть ложный ответ службы, взятый из файла ресурсов:Могу ли я использовать переменную 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)); 
      } 

шаблонов файлов/helloResponses/ReqIdGenerator.xml содержания является:

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

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

ответ

1

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

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

+0

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