Я ищу собственный (правильный, с точки зрения фреймворка) способ отправки стороннего (пользовательского) объекта в JMS в citrus-simulator ?
Я пробовал:
scenario
.send()
.payloadModel(myObject);
но в очереди JMS myObject отображается как com.consol.citrus.message.DefaultMessage вместо com ... myObject .
Пример:
Сценарий - получает запрос HTTP POST (как триггер) и отправляет объект JMS в очередь сообщений.
конфиг
...
.useObjectMessages(true)
...
сценарий
...
import com.temafon.data.MORequest;
@Scenario("morequest")
@RequestMapping(value = "/simulator/morequest",method = RequestMethod.POST)
public class JmsMoRequestScenario extends AbstractSimulatorScenario {
@Override
public void run(ScenarioDesigner scenario) {
MORequest request = new MORequest(12345678901L, "USSD", "1172", "ON",
11L);
request.setSourcePort(3);
scenario
.receive()
.payload("getmorequest");
scenario
.send("jms.queue.destination")
.payloadModel(request);
После этого случая я ожидаю получить в jms.queue.destination что-то вроде screen 1
Expectation
Reality
P.S. Я уже реализовал обходной путь с JavaActionBuilder и jmsTemplate.send в дополнительном классе и
scenario
.java(//Object).method(//instance");
Но это не похоже на правильный путь цитрусового симулятора