Конечная точка файла для Citrus Framework

В настоящее время я рассматриваю возможность использования Citrus для нашего интеграционного тестирования, однако наше интеграционное программное обеспечение использует, среди прочего, файловые сообщения, когда файлы записываются во входящую папку, извлекаются и обрабатываются, в результате чего новое файловое сообщение записывается в исходящую папку. или данные записываются в SQL.

Мне было интересно, может ли Citrus записать файл с определенной полезной нагрузкой во входящую папку, а затем отслеживать появление файла в определенной исходящей папке и/или в таблице SQL.

Пример теста:

file()
  .folder(todoInboundFolder)
  .write()
  .payload(new ClassPathResource("templates/todo.xml"));

file()
  .folder(todoOutboundFolder)
  .read()
  .validate("/t:todo/t:correlationId", "${todocorrelationId}")
  .validate("/t:todo/t:title", "${todoName}");

query(todoDataSource)
  .statement("select count(*) as cnt from todo_entries where correlationid = '${todocorrelationId}'")
  .validate("cnt", "1");

Дополнительно - есть ли способ указать тайм-аут для ожидания появления записей файла/SQL?


person MuffenMan    schedule 12.09.2019    source источник


Ответы (1)


В Citrus пока нет прямой реализации конечной точки файла. Был запрос функции, но он был закрыт из-за бездействия https://github.com/citrusframework/citrus/issues/151

Однако вы можете решить эту проблему, используя простой маршрут Apache Camel для передачи файлов. Citrus может вызывать маршрут Camel и очень легко использовать его результат. Подробнее об этом читайте здесь https://citrusframework.org/citrus/reference/2.8.0/html/index.html#apache-camel

Это будет обходной путь, который может помочь прямо сейчас. Кроме того, вы можете повторно открыть или внести свой вклад в проблему.

person Christoph Deppisch    schedule 15.09.2019