File Endpoint for Citrus Framework

半腔热情 提交于 2021-01-29 14:34:40

问题


I'm currently looking at using Citrus for our Integration Testing, however our Integration Software uses amongst others, file messages - where files are written to an inbound folder, picked up and processed which results in a new file message being written to an outbound folder or data being written to SQL.

I was wondering if Citrus can write a file with a certain payload to an inbound folder and then monitor for a file to appear in certain outbound folder and/or in a SQL table.

Example Test Case:

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

Additionaly - is there a way to specific the timeout to wait for the file/SQL entries to appear?


回答1:


There is no direct implementation of the file endpoint yet in Citrus. There was a feature request but it was closed due to inactivity https://github.com/citrusframework/citrus/issues/151

You can solve this problem though by using a simple Apache Camel route to do the file transfer. Citrus is able to call the Camel route and use its outcome very easily. Read more about this here https://citrusframework.org/citrus/reference/2.8.0/html/index.html#apache-camel

This would be the workaround that can help right now. Other than that you can reopen or contribute to the issue.



来源:https://stackoverflow.com/questions/57910464/file-endpoint-for-citrus-framework

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!