How to use validateMessage method of com.consol.citrus.validation.DefaultMessageHeaderValidator class

Best Citrus code snippet using com.consol.citrus.validation.DefaultMessageHeaderValidator.validateMessage

Source:ReceiveMessageActionTest.java Github

copy

Full Screen

...100 Message received = invocationOnMock.getArgument(0);101 Message control = invocationOnMock.getArgument(1);102 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);103 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());104 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);105 return null;106 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));107 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()108 .endpoint("direct:mockQueue?timeout=15000")109 .actor(testActor)110 .message(controlMessageBuilder)111 .build();112 receiveAction.execute(context);113 }114 @Test115 @SuppressWarnings({ "unchecked" })116 public void testReceiveMessageWithVariableEndpointName() {117 context.setVariable("varEndpoint", "direct:mockQueue");118 TestActor testActor = new TestActor();119 testActor.setName("TESTACTOR");120 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();121 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));122 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");123 when(mockQueue.receive(5000)).thenReturn(controlMessage);124 doAnswer(invocationOnMock -> {125 Message received = invocationOnMock.getArgument(0);126 Message control = invocationOnMock.getArgument(1);127 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);128 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());129 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);130 return null;131 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));132 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()133 .endpoint("${varEndpoint}")134 .actor(testActor)135 .message(controlMessageBuilder)136 .build();137 receiveAction.execute(context);138 }139 @Test140 @SuppressWarnings({ "unchecked" })141 public void testReceiveMessageWithMessagePayloadData() {142 TestActor testActor = new TestActor();143 testActor.setName("TESTACTOR");144 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();145 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));146 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");147 reset(endpoint, consumer, endpointConfiguration);148 when(endpoint.createConsumer()).thenReturn(consumer);149 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);150 when(endpointConfiguration.getTimeout()).thenReturn(5000L);151 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);152 when(endpoint.getActor()).thenReturn(null);153 doAnswer(invocationOnMock -> {154 Message received = invocationOnMock.getArgument(0);155 Message control = invocationOnMock.getArgument(1);156 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);157 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());158 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);159 return null;160 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));161 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()162 .endpoint(endpoint)163 .actor(testActor)164 .message(controlMessageBuilder)165 .build();166 receiveAction.execute(context);167 }168 @Test169 @SuppressWarnings({ "unchecked" })170 public void testReceiveMessageWithMessagePayloadResource() {171 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();172 controlMessageBuilder.setPayloadBuilder(new FileResourcePayloadBuilder("classpath:com/consol/citrus/actions/test-request-payload.xml"));173 final Message controlMessage = new DefaultMessage("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.lineSeparator() +174 "<TestRequest>" + System.lineSeparator() +175 " <Message>Hello World!</Message>" + System.lineSeparator() +176 "</TestRequest>");177 reset(endpoint, consumer, endpointConfiguration);178 when(endpoint.createConsumer()).thenReturn(consumer);179 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);180 when(endpointConfiguration.getTimeout()).thenReturn(5000L);181 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);182 when(endpoint.getActor()).thenReturn(null);183 doAnswer(invocationOnMock -> {184 Message received = invocationOnMock.getArgument(0);185 Message control = invocationOnMock.getArgument(1);186 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);187 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());188 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);189 return null;190 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));191 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()192 .endpoint(endpoint)193 .message(controlMessageBuilder)194 .build();195 receiveAction.execute(context);196 }197 @Test198 @SuppressWarnings({ "unchecked" })199 public void testReceiveMessageWithMessagePayloadDataVariablesSupport() {200 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();201 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>${myText}</Message></TestRequest>"));202 context.setVariable("myText", "Hello World!");203 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");204 reset(endpoint, consumer, endpointConfiguration);205 when(endpoint.createConsumer()).thenReturn(consumer);206 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);207 when(endpointConfiguration.getTimeout()).thenReturn(5000L);208 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);209 when(endpoint.getActor()).thenReturn(null);210 doAnswer(invocationOnMock -> {211 Message received = invocationOnMock.getArgument(0);212 Message control = invocationOnMock.getArgument(1);213 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);214 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());215 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);216 return null;217 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));218 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()219 .endpoint(endpoint)220 .message(controlMessageBuilder)221 .build();222 receiveAction.execute(context);223 }224 @Test225 @SuppressWarnings({ "unchecked" })226 public void testReceiveMessageWithMessagePayloadResourceVariablesSupport() {227 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();228 controlMessageBuilder.setPayloadBuilder(new FileResourcePayloadBuilder("classpath:com/consol/citrus/actions/test-request-payload-with-variables.xml"));229 context.setVariable("myText", "Hello World!");230 final Message controlMessage = new DefaultMessage("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.lineSeparator() +231 "<TestRequest>" + System.lineSeparator() +232 " <Message>Hello World!</Message>" + System.lineSeparator() +233 "</TestRequest>");234 reset(endpoint, consumer, endpointConfiguration);235 when(endpoint.createConsumer()).thenReturn(consumer);236 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);237 when(endpointConfiguration.getTimeout()).thenReturn(5000L);238 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);239 when(endpoint.getActor()).thenReturn(null);240 doAnswer(invocationOnMock -> {241 Message received = invocationOnMock.getArgument(0);242 Message control = invocationOnMock.getArgument(1);243 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);244 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());245 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);246 return null;247 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));248 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()249 .endpoint(endpoint)250 .message(controlMessageBuilder)251 .build();252 receiveAction.execute(context);253 }254 @Test255 @SuppressWarnings({ "unchecked" })256 public void testReceiveMessageWithMessagePayloadResourceFunctionsSupport() {257 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();258 controlMessageBuilder.setPayloadBuilder(new FileResourcePayloadBuilder("classpath:com/consol/citrus/actions/test-request-payload-with-functions.xml"));259 final Message controlMessage = new DefaultMessage("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.lineSeparator() +260 "<TestRequest>" + System.lineSeparator() +261 " <Message>Hello World!</Message>" + System.lineSeparator() +262 "</TestRequest>");263 reset(endpoint, consumer, endpointConfiguration);264 when(endpoint.createConsumer()).thenReturn(consumer);265 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);266 when(endpointConfiguration.getTimeout()).thenReturn(5000L);267 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);268 when(endpoint.getActor()).thenReturn(null);269 doAnswer(invocationOnMock -> {270 Message received = invocationOnMock.getArgument(0);271 Message control = invocationOnMock.getArgument(1);272 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);273 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());274 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);275 return null;276 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));277 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()278 .endpoint(endpoint)279 .message(controlMessageBuilder)280 .build();281 receiveAction.execute(context);282 }283 @Test284 @SuppressWarnings({ "unchecked" })285 public void testReceiveMessageOverwriteMessageElements() {286 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();287 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest xmlns=\"http://citrusframework.org/unittest\">" +288 "<Message>?</Message></TestRequest>"));289 MessageProcessor processor = (message, context) ->290 message.setPayload(message.getPayload(String.class).replaceAll("\\?", "Hello World!"));291 Message controlMessage = new DefaultMessage("<TestRequest xmlns=\"http://citrusframework.org/unittest\">" +292 "<Message>Hello World!</Message></TestRequest>");293 reset(endpoint, consumer, endpointConfiguration);294 when(endpoint.createConsumer()).thenReturn(consumer);295 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);296 when(endpointConfiguration.getTimeout()).thenReturn(5000L);297 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);298 when(endpoint.getActor()).thenReturn(null);299 XmlMessageValidationContext validationContext = new XmlMessageValidationContext.Builder()300 .schemaValidation(false)301 .build();302 doAnswer(invocationOnMock -> {303 Message received = invocationOnMock.getArgument(0);304 Message control = invocationOnMock.getArgument(1);305 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);306 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());307 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);308 return null;309 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));310 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()311 .endpoint(endpoint)312 .message(controlMessageBuilder)313 .process(processor)314 .validate(validationContext)315 .build();316 receiveAction.execute(context);317 }318 @Test319 @SuppressWarnings({ "unchecked" })320 public void testReceiveMessageWithMessageHeaders() {321 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();322 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));323 Map<String, Object> headers = new HashMap<>();324 headers.put("Operation", "sayHello");325 controlMessageBuilder.addHeaderBuilder(new DefaultHeaderBuilder(headers));326 Map<String, Object> controlHeaders = new HashMap<>();327 controlHeaders.put("Operation", "sayHello");328 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", controlHeaders);329 reset(endpoint, consumer, endpointConfiguration);330 when(endpoint.createConsumer()).thenReturn(consumer);331 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);332 when(endpointConfiguration.getTimeout()).thenReturn(5000L);333 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);334 when(endpoint.getActor()).thenReturn(null);335 doAnswer(invocationOnMock -> {336 Message received = invocationOnMock.getArgument(0);337 Message control = invocationOnMock.getArgument(1);338 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);339 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());340 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);341 return null;342 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));343 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()344 .endpoint(endpoint)345 .message(controlMessageBuilder)346 .build();347 receiveAction.execute(context);348 }349 @Test350 @SuppressWarnings({ "unchecked" })351 public void testReceiveMessageWithMessageHeadersVariablesSupport() {352 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();353 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));354 context.setVariable("myOperation", "sayHello");355 Map<String, Object> headers = new HashMap<>();356 headers.put("Operation", "${myOperation}");357 controlMessageBuilder.addHeaderBuilder(new DefaultHeaderBuilder(headers));358 Map<String, Object> controlHeaders = new HashMap<>();359 controlHeaders.put("Operation", "sayHello");360 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", controlHeaders);361 reset(endpoint, consumer, endpointConfiguration);362 when(endpoint.createConsumer()).thenReturn(consumer);363 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);364 when(endpointConfiguration.getTimeout()).thenReturn(5000L);365 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);366 when(endpoint.getActor()).thenReturn(null);367 doAnswer(invocationOnMock -> {368 Message received = invocationOnMock.getArgument(0);369 Message control = invocationOnMock.getArgument(1);370 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);371 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());372 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);373 return null;374 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));375 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()376 .endpoint(endpoint)377 .message(controlMessageBuilder)378 .build();379 receiveAction.execute(context);380 }381 @Test382 @SuppressWarnings({ "unchecked" })383 public void testReceiveMessageWithUnknownVariablesInMessageHeaders() {384 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();385 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));386 Map<String, Object> headers = new HashMap<>();387 headers.put("Operation", "${myOperation}");388 controlMessageBuilder.addHeaderBuilder(new DefaultHeaderBuilder(headers));389 Map<String, Object> controlHeaders = new HashMap<>();390 controlHeaders.put("Operation", "sayHello");391 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", controlHeaders);392 reset(endpoint, consumer, endpointConfiguration);393 when(endpoint.createConsumer()).thenReturn(consumer);394 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);395 when(endpointConfiguration.getTimeout()).thenReturn(5000L);396 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);397 when(endpoint.getActor()).thenReturn(null);398 doAnswer(invocationOnMock -> {399 Message received = invocationOnMock.getArgument(0);400 Message control = invocationOnMock.getArgument(1);401 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);402 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());403 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);404 return null;405 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));406 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()407 .endpoint(endpoint)408 .message(controlMessageBuilder)409 .build();410 try {411 receiveAction.execute(context);412 } catch(CitrusRuntimeException e) {413 Assert.assertEquals(e.getMessage(), "Unknown variable 'myOperation'");414 }415 }416 @Test417 @SuppressWarnings({ "unchecked" })418 public void testReceiveMessageWithUnknownVariableInMessagePayload() {419 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();420 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>${myText}</Message></TestRequest>"));421 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");422 reset(endpoint, consumer, endpointConfiguration);423 when(endpoint.createConsumer()).thenReturn(consumer);424 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);425 when(endpointConfiguration.getTimeout()).thenReturn(5000L);426 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);427 when(endpoint.getActor()).thenReturn(null);428 doAnswer(invocationOnMock -> {429 Message received = invocationOnMock.getArgument(0);430 Message control = invocationOnMock.getArgument(1);431 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);432 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());433 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);434 return null;435 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));436 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()437 .endpoint(endpoint)438 .message(controlMessageBuilder)439 .build();440 try {441 receiveAction.execute(context);442 } catch(CitrusRuntimeException e) {443 Assert.assertEquals(e.getMessage(), "Unknown variable 'myText'");444 }445 }446 @Test447 @SuppressWarnings({ "unchecked" })448 public void testReceiveMessageWithExtractVariablesFromHeaders() {449 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();450 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));451 Map<String, String> headers = new HashMap<>();452 headers.put("Operation", "myOperation");453 MessageHeaderVariableExtractor headerVariableExtractor = new MessageHeaderVariableExtractor.Builder()454 .headers(headers)455 .build();456 Map<String, Object> controlHeaders = new HashMap<>();457 controlHeaders.put("Operation", "sayHello");458 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", controlHeaders);459 reset(endpoint, consumer, endpointConfiguration);460 when(endpoint.createConsumer()).thenReturn(consumer);461 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);462 when(endpointConfiguration.getTimeout()).thenReturn(5000L);463 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);464 when(endpoint.getActor()).thenReturn(null);465 doAnswer(invocationOnMock -> {466 Message received = invocationOnMock.getArgument(0);467 Message control = invocationOnMock.getArgument(1);468 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);469 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());470 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);471 return null;472 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));473 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()474 .endpoint(endpoint)475 .message(controlMessageBuilder)476 .process(headerVariableExtractor)477 .build();478 receiveAction.execute(context);479 Assert.assertNotNull(context.getVariable("myOperation"));480 Assert.assertEquals(context.getVariable("myOperation"), "sayHello");481 }482 @Test483 @SuppressWarnings({ "unchecked" })484 public void testReceiveMessageWithExtractVariables() {485 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();486 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));487 VariableExtractor variableExtractor = (message, context) ->488 context.setVariable("messageVar", "Hello World!");489 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");490 reset(endpoint, consumer, endpointConfiguration);491 when(endpoint.createConsumer()).thenReturn(consumer);492 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);493 when(endpointConfiguration.getTimeout()).thenReturn(5000L);494 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);495 when(endpoint.getActor()).thenReturn(null);496 doAnswer(invocationOnMock -> {497 Message received = invocationOnMock.getArgument(0);498 Message control = invocationOnMock.getArgument(1);499 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);500 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());501 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);502 return null;503 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));504 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()505 .endpoint(endpoint)506 .message(controlMessageBuilder)507 .process(variableExtractor)508 .build();509 receiveAction.execute(context);510 Assert.assertNotNull(context.getVariable("messageVar"));511 Assert.assertEquals(context.getVariable("messageVar"), "Hello World!");512 }513 @Test514 @SuppressWarnings({ "unchecked" })515 public void testReceiveMessageWithTimeout() {516 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();517 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));518 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");519 reset(endpoint, consumer, endpointConfiguration);520 when(endpoint.createConsumer()).thenReturn(consumer);521 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);522 when(endpointConfiguration.getTimeout()).thenReturn(5000L);523 when(consumer.receive(context, 3000L)).thenReturn(controlMessage);524 when(endpoint.getActor()).thenReturn(null);525 doAnswer(invocationOnMock -> {526 Message received = invocationOnMock.getArgument(0);527 Message control = invocationOnMock.getArgument(1);528 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);529 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());530 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);531 return null;532 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));533 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()534 .endpoint(endpoint)535 .timeout(3000L)536 .message(controlMessageBuilder)537 .build();538 receiveAction.execute(context);539 }540 @Test541 @SuppressWarnings({ "unchecked" })542 public void testReceiveSelectedWithMessageSelector() {543 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();544 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));545 String messageSelector = "Operation = 'sayHello'";546 Map<String, Object> headers = new HashMap<>();547 headers.put("Operation", "sayHello");548 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", headers);549 reset(endpoint, consumer, endpointConfiguration);550 when(endpoint.createConsumer()).thenReturn(consumer);551 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);552 when(endpointConfiguration.getTimeout()).thenReturn(5000L);553 when(consumer.receive(messageSelector, context, 5000L)).thenReturn(controlMessage);554 when(endpoint.getActor()).thenReturn(null);555 doAnswer(invocationOnMock -> {556 Message received = invocationOnMock.getArgument(0);557 Message control = invocationOnMock.getArgument(1);558 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);559 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());560 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);561 return null;562 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));563 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()564 .endpoint(endpoint)565 .message(controlMessageBuilder)566 .selector(messageSelector)567 .build();568 receiveAction.execute(context);569 }570 @Test571 @SuppressWarnings({ "unchecked" })572 public void testReceiveSelectedWithMessageSelectorAndTimeout() {573 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();574 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));575 String messageSelector = "Operation = 'sayHello'";576 Map<String, Object> headers = new HashMap<>();577 headers.put("Operation", "sayHello");578 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", headers);579 reset(endpoint, consumer, endpointConfiguration);580 when(endpoint.createConsumer()).thenReturn(consumer);581 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);582 when(endpointConfiguration.getTimeout()).thenReturn(5000L);583 when(consumer.receive(messageSelector, context, 5000L)).thenReturn(controlMessage);584 when(endpoint.getActor()).thenReturn(null);585 doAnswer(invocationOnMock -> {586 Message received = invocationOnMock.getArgument(0);587 Message control = invocationOnMock.getArgument(1);588 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);589 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());590 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);591 return null;592 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));593 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()594 .endpoint(endpoint)595 .message(controlMessageBuilder)596 .timeout(5000L)597 .selector(messageSelector)598 .build();599 receiveAction.execute(context);600 }601 @Test602 @SuppressWarnings({ "unchecked" })603 public void testReceiveSelectedWithMessageSelectorMap() {604 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();605 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));606 Map<String, String> messageSelector = new HashMap<>();607 messageSelector.put("Operation", "sayHello");608 Map<String, Object> headers = new HashMap<>();609 headers.put("Operation", "sayHello");610 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", headers);611 reset(endpoint, consumer, endpointConfiguration);612 when(endpoint.createConsumer()).thenReturn(consumer);613 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);614 when(endpointConfiguration.getTimeout()).thenReturn(5000L);615 when(consumer.receive("Operation = 'sayHello'", context, 5000L)).thenReturn(controlMessage);616 when(endpoint.getActor()).thenReturn(null);617 doAnswer(invocationOnMock -> {618 Message received = invocationOnMock.getArgument(0);619 Message control = invocationOnMock.getArgument(1);620 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);621 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());622 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);623 return null;624 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));625 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()626 .endpoint(endpoint)627 .message(controlMessageBuilder)628 .selector(messageSelector)629 .build();630 receiveAction.execute(context);631 }632 @Test633 @SuppressWarnings({ "unchecked" })634 public void testReceiveSelectedWithMessageSelectorMapAndTimeout() {635 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();636 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));637 Map<String, String> messageSelector = new HashMap<>();638 messageSelector.put("Operation", "sayHello");639 Map<String, Object> headers = new HashMap<>();640 headers.put("Operation", "sayHello");641 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>", headers);642 reset(endpoint, consumer, endpointConfiguration);643 when(endpoint.createConsumer()).thenReturn(consumer);644 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);645 when(endpointConfiguration.getTimeout()).thenReturn(5000L);646 when(consumer.receive("Operation = 'sayHello'", context, 5000L)).thenReturn(controlMessage);647 when(endpoint.getActor()).thenReturn(null);648 doAnswer(invocationOnMock -> {649 Message received = invocationOnMock.getArgument(0);650 Message control = invocationOnMock.getArgument(1);651 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);652 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());653 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);654 return null;655 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));656 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()657 .endpoint(endpoint)658 .timeout(5000L)659 .message(controlMessageBuilder)660 .selector(messageSelector)661 .build();662 receiveAction.execute(context);663 }664 @Test665 public void testMessageTimeout() {666 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();667 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));668 reset(endpoint, consumer, endpointConfiguration);669 when(endpoint.createConsumer()).thenReturn(consumer);670 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);671 when(endpointConfiguration.getTimeout()).thenReturn(5000L);672 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(null);673 when(endpoint.getActor()).thenReturn(null);674 doAnswer(invocationOnMock -> {675 Message received = invocationOnMock.getArgument(0);676 Message control = invocationOnMock.getArgument(1);677 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);678 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());679 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);680 return null;681 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));682 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()683 .endpoint(endpoint)684 .message(controlMessageBuilder)685 .build();686 try {687 receiveAction.execute(context);688 } catch(CitrusRuntimeException e) {689 Assert.assertEquals(e.getMessage(), "Failed to receive message - message is not available");690 return;691 }692 Assert.fail("Missing " + CitrusRuntimeException.class + " for receiving no message");693 }694 @Test695 @SuppressWarnings({ "unchecked" })696 public void testReceiveEmptyMessagePayloadAsExpected() {697 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();698 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder(""));699 Message controlMessage = new DefaultMessage("");700 reset(endpoint, consumer, endpointConfiguration);701 when(endpoint.createConsumer()).thenReturn(consumer);702 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);703 when(endpointConfiguration.getTimeout()).thenReturn(5000L);704 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);705 when(endpoint.getActor()).thenReturn(null);706 doAnswer(invocationOnMock -> {707 Message received = invocationOnMock.getArgument(0);708 Message control = invocationOnMock.getArgument(1);709 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);710 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());711 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);712 return null;713 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));714 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()715 .endpoint(endpoint)716 .message(controlMessageBuilder)717 .build();718 receiveAction.execute(context);719 }720 @Test721 public void testDisabledReceiveMessage() {722 TestCase testCase = new DefaultTestCase();723 TestActor disabledActor = new TestActor();724 disabledActor.setDisabled(true);725 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();726 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));727 reset(endpoint, consumer, endpointConfiguration);728 when(endpoint.createConsumer()).thenReturn(consumer);729 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);730 when(endpointConfiguration.getTimeout()).thenReturn(5000L);731 when(endpoint.getActor()).thenReturn(null);732 doAnswer(invocationOnMock -> {733 Message received = invocationOnMock.getArgument(0);734 Message control = invocationOnMock.getArgument(1);735 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);736 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());737 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);738 return null;739 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));740 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()741 .endpoint(endpoint)742 .actor(disabledActor)743 .message(controlMessageBuilder)744 .build();745 testCase.addTestAction(receiveAction);746 testCase.execute(context);747 }748 @Test749 public void testDisabledReceiveMessageByEndpointActor() {750 TestCase testCase = new DefaultTestCase();751 TestActor disabledActor = new TestActor();752 disabledActor.setDisabled(true);753 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();754 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>Hello World!</Message></TestRequest>"));755 reset(endpoint, consumer, endpointConfiguration);756 when(endpoint.createConsumer()).thenReturn(consumer);757 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);758 when(endpointConfiguration.getTimeout()).thenReturn(5000L);759 when(endpoint.getActor()).thenReturn(disabledActor);760 doAnswer(invocationOnMock -> {761 Message received = invocationOnMock.getArgument(0);762 Message control = invocationOnMock.getArgument(1);763 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);764 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());765 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);766 return null;767 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));768 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()769 .endpoint(endpoint)770 .message(controlMessageBuilder)771 .build();772 testCase.addTestAction(receiveAction);773 testCase.execute(context);774 }775 @Test776 public void testWithExplicitDataDictionary() {777 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();778 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>?</Message></TestRequest>"));779 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello Citrus!</Message></TestRequest>");780 reset(endpoint, consumer, endpointConfiguration, dictionary);781 when(dictionary.getDirection()).thenReturn(MessageDirection.INBOUND);782 when(dictionary.isGlobalScope()).thenReturn(false);783 doAnswer(invocationOnMock -> {784 Message message = invocationOnMock.getArgument(0);785 message.setPayload("<TestRequest><Message>Hello Citrus!</Message></TestRequest>");786 return null;787 }).when(dictionary).process(any(Message.class), eq(context));788 when(endpoint.createConsumer()).thenReturn(consumer);789 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);790 when(endpointConfiguration.getTimeout()).thenReturn(5000L);791 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);792 when(endpoint.getActor()).thenReturn(null);793 doAnswer(invocationOnMock -> {794 Message received = invocationOnMock.getArgument(0);795 Message control = invocationOnMock.getArgument(1);796 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);797 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());798 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);799 return null;800 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));801 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()802 .endpoint(endpoint)803 .message(controlMessageBuilder)804 .dictionary(dictionary)805 .build();806 receiveAction.execute(context);807 }808 @Test809 public void testWithExplicitAndGlobalDataDictionary() {810 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();811 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>?</Message></TestRequest>"));812 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello Citrus!</Message></TestRequest>");813 reset(endpoint, consumer, endpointConfiguration, dictionary, globalDictionary);814 when(dictionary.getDirection()).thenReturn(MessageDirection.INBOUND);815 when(globalDictionary.getDirection()).thenReturn(MessageDirection.INBOUND);816 when(dictionary.isGlobalScope()).thenReturn(false);817 when(globalDictionary.isGlobalScope()).thenReturn(true);818 doAnswer(invocationOnMock -> {819 Message message = invocationOnMock.getArgument(0);820 message.setPayload("<TestRequest><Message>Hello World!</Message></TestRequest>");821 return null;822 }).when(globalDictionary).process(any(Message.class), eq(context));823 doAnswer(invocationOnMock -> {824 Message message = invocationOnMock.getArgument(0);825 message.setPayload("<TestRequest><Message>Hello Citrus!</Message></TestRequest>");826 return null;827 }).when(dictionary).process(any(Message.class), eq(context));828 when(endpoint.createConsumer()).thenReturn(consumer);829 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);830 when(endpointConfiguration.getTimeout()).thenReturn(5000L);831 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);832 when(endpoint.getActor()).thenReturn(null);833 doAnswer(invocationOnMock -> {834 Message received = invocationOnMock.getArgument(0);835 Message control = invocationOnMock.getArgument(1);836 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);837 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());838 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);839 return null;840 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));841 context.getMessageProcessors().setMessageProcessors(Collections.singletonList(globalDictionary));842 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()843 .endpoint(endpoint)844 .message(controlMessageBuilder)845 .dictionary(dictionary)846 .build();847 receiveAction.execute(context);848 }849 @Test850 public void testWithGlobalDataDictionary() {851 DefaultMessageBuilder controlMessageBuilder = new DefaultMessageBuilder();852 controlMessageBuilder.setPayloadBuilder(new DefaultPayloadBuilder("<TestRequest><Message>?</Message></TestRequest>"));853 Message controlMessage = new DefaultMessage("<TestRequest><Message>Hello World!</Message></TestRequest>");854 reset(endpoint, consumer, endpointConfiguration, inboundDictionary, outboundDictionary);855 when(inboundDictionary.getDirection()).thenReturn(MessageDirection.INBOUND);856 when(outboundDictionary.getDirection()).thenReturn(MessageDirection.OUTBOUND);857 when(inboundDictionary.isGlobalScope()).thenReturn(true);858 when(outboundDictionary.isGlobalScope()).thenReturn(true);859 doAnswer(invocationOnMock -> {860 Message message = invocationOnMock.getArgument(0);861 message.setPayload("<TestRequest><Message>Hello World!</Message></TestRequest>");862 return null;863 }).when(inboundDictionary).process(any(Message.class), eq(context));864 doThrow(new CitrusRuntimeException("Unexpected call of outbound data dictionary"))865 .when(outboundDictionary).process(any(Message.class), eq(context));866 when(endpoint.createConsumer()).thenReturn(consumer);867 when(endpoint.getEndpointConfiguration()).thenReturn(endpointConfiguration);868 when(endpointConfiguration.getTimeout()).thenReturn(5000L);869 when(consumer.receive(any(TestContext.class), anyLong())).thenReturn(controlMessage);870 when(endpoint.getActor()).thenReturn(null);871 doAnswer(invocationOnMock -> {872 Message received = invocationOnMock.getArgument(0);873 Message control = invocationOnMock.getArgument(1);874 List<ValidationContext> validationContextList = invocationOnMock.getArgument(3);875 Assert.assertEquals(received.getPayload(String.class).trim(), control.getPayload(String.class).trim());876 new DefaultMessageHeaderValidator().validateMessage(received, control, context, validationContextList);877 return null;878 }).when(validator).validateMessage(any(Message.class), any(Message.class), eq(context), any(List.class));879 context.getMessageProcessors().setMessageProcessors(Arrays.asList(inboundDictionary, outboundDictionary));880 ReceiveMessageAction receiveAction = new ReceiveMessageAction.Builder()881 .endpoint(endpoint)882 .message(controlMessageBuilder)883 .build();884 receiveAction.execute(context);885 }886}...

Full Screen

Full Screen

Source:ReceiveMessageAction.java Github

copy

Full Screen

...108 if (receivedMessage == null) {109 throw new CitrusRuntimeException("Failed to receive message - message is not available");110 }111 //validate the message112 validateMessage(receivedMessage, context);113 } catch (IOException e) {114 throw new CitrusRuntimeException(e);115 }116 }117 /**118 * Receives the message with respective message receiver implementation.119 * @return120 */121 private Message receive(TestContext context) {122 Endpoint messageEndpoint = getOrCreateEndpoint(context);123 return receiveTimeout > 0 ? messageEndpoint.createConsumer().receive(context, receiveTimeout) :124 messageEndpoint.createConsumer().receive(context, messageEndpoint.getEndpointConfiguration().getTimeout());125 }126 /**127 * Receives the message with the respective message receiver implementation 128 * also using a message selector.129 * @param context the test context.130 * @param selectorString the message selector string.131 * @return132 */133 private Message receiveSelected(TestContext context, String selectorString) {134 if (log.isDebugEnabled()) {135 log.debug("Setting message selector: '" + selectorString + "'");136 }137 Endpoint messageEndpoint = getOrCreateEndpoint(context);138 Consumer consumer = messageEndpoint.createConsumer();139 if (consumer instanceof SelectiveConsumer) {140 if (receiveTimeout > 0) {141 return ((SelectiveConsumer) messageEndpoint.createConsumer()).receive(142 context.replaceDynamicContentInString(selectorString),143 context, receiveTimeout);144 } else {145 return ((SelectiveConsumer) messageEndpoint.createConsumer()).receive(146 context.replaceDynamicContentInString(selectorString),147 context, messageEndpoint.getEndpointConfiguration().getTimeout());148 }149 } else {150 log.warn(String.format("Unable to receive selective with consumer implementation: '%s'", consumer.getClass()));151 return receive(context);152 }153 }154 /**155 * Override this message if you want to add additional message validation156 * @param receivedMessage157 */158 protected void validateMessage(Message receivedMessage, TestContext context) throws IOException {159 // extract variables from received message content160 for (VariableExtractor variableExtractor : variableExtractors) {161 variableExtractor.extractVariables(receivedMessage, context);162 }163 if (validationCallback != null) {164 if (StringUtils.hasText(receivedMessage.getName())) {165 context.getMessageStore().storeMessage(receivedMessage.getName(), receivedMessage);166 } else {167 context.getMessageStore().storeMessage(context.getMessageStore().constructMessageName(this, getOrCreateEndpoint(context)), receivedMessage);168 }169 validationCallback.validate(receivedMessage, context);170 } else {171 Message controlMessage = createControlMessage(context, messageType);172 if (StringUtils.hasText(controlMessage.getName())) {173 context.getMessageStore().storeMessage(controlMessage.getName(), receivedMessage);174 } else {175 context.getMessageStore().storeMessage(context.getMessageStore().constructMessageName(this, getOrCreateEndpoint(context)), receivedMessage);176 }177 if (!CollectionUtils.isEmpty(validators)) {178 for (MessageValidator<? extends ValidationContext> messageValidator : validators) {179 messageValidator.validateMessage(receivedMessage, controlMessage, context, validationContexts);180 }181 if (validators.parallelStream()182 .map(Object::getClass)183 .noneMatch(DefaultMessageHeaderValidator.class::isAssignableFrom)) {184 MessageValidator defaultMessageHeaderValidator = context.getMessageValidatorRegistry().getDefaultMessageHeaderValidator();185 if (defaultMessageHeaderValidator != null) {186 defaultMessageHeaderValidator.validateMessage(receivedMessage, controlMessage, context, validationContexts);187 }188 }189 } else {190 List<MessageValidator<? extends ValidationContext>> validators =191 context.getMessageValidatorRegistry().findMessageValidators(messageType, receivedMessage);192 if (validators.isEmpty()) {193 if (controlMessage.getPayload() instanceof String &&194 StringUtils.hasText(controlMessage.getPayload(String.class))) {195 throw new CitrusRuntimeException(String.format("Unable to find proper message validator for message type '%s' and validation contexts '%s'", messageType, validationContexts));196 } else if (validationContexts.stream().anyMatch(item -> JsonPathMessageValidationContext.class.isAssignableFrom(item.getClass())197 || XpathMessageValidationContext.class.isAssignableFrom(item.getClass())198 || ScriptValidationContext.class.isAssignableFrom(item.getClass()))) {199 throw new CitrusRuntimeException(String.format("Unable to find proper message validator for message type '%s' and validation contexts '%s'", messageType, validationContexts));200 } else {201 log.warn(String.format("Unable to find proper message validator for message type '%s' and validation contexts '%s'", messageType, validationContexts));202 }203 }204 for (MessageValidator<? extends ValidationContext> messageValidator : validators) {205 messageValidator.validateMessage(receivedMessage, controlMessage, context, validationContexts);206 }207 }208 }209 }210 /**211 * Create control message that is expected.212 * @param context213 * @param messageType214 * @return215 */216 protected Message createControlMessage(TestContext context, String messageType) {217 if (dataDictionary != null) {218 messageBuilder.setDataDictionary(dataDictionary);219 }...

Full Screen

Full Screen

Source:DefaultMessageHeaderValidatorTest.java Github

copy

Full Screen

...31 @Test32 public void testValidateNoMessageHeaders() throws Exception {33 Message receivedMessage = new DefaultMessage("Hello World!");34 Message controlMessage = new DefaultMessage("Hello World!");35 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);36 }37 @Test38 public void testValidateMessageHeaders() throws Exception {39 Message receivedMessage = new DefaultMessage("Hello World!")40 .setHeader("foo", "foo_test")41 .setHeader("additional", "additional")42 .setHeader("bar", "bar_test");43 Message controlMessage = new DefaultMessage("Hello World!")44 .setHeader("foo", "foo_test")45 .setHeader("bar", "bar_test");46 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);47 }48 @Test49 public void testValidateMessageHeadersIgnoreCase() throws Exception {50 try {51 Message receivedMessage = new DefaultMessage("Hello World!")52 .setHeader("X-Foo", "foo_test")53 .setHeader("X-Additional", "additional")54 .setHeader("X-Bar", "bar_test");55 Message controlMessage = new DefaultMessage("Hello World!")56 .setHeader("x-foo", "foo_test")57 .setHeader("x-bar", "bar_test");58 validationContext.setHeaderNameIgnoreCase(true);59 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);60 } finally {61 validationContext.setHeaderNameIgnoreCase(false);62 }63 }64 @Test(expectedExceptions = ValidationException.class)65 public void testValidateMessageHeadersIgnoreCaseError() throws Exception {66 Message receivedMessage = new DefaultMessage("Hello World!")67 .setHeader("X-Foo", "foo_test")68 .setHeader("X-Additional", "additional")69 .setHeader("X-Bar", "bar_test");70 Message controlMessage = new DefaultMessage("Hello World!")71 .setHeader("x-foo", "foo_test")72 .setHeader("x-bar", "bar_test");73 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);74 }75 @Test76 public void testValidateMessageHeadersVariableSupport() throws Exception {77 Message receivedMessage = new DefaultMessage("Hello World!")78 .setHeader("foo", "foo_test")79 .setHeader("additional", "additional")80 .setHeader("bar", "bar_test");81 Message controlMessage = new DefaultMessage("Hello World!")82 .setHeader("foo", "citrus:concat('foo', '_test')")83 .setHeader("bar", "${bar}");84 context.setVariable("bar", "bar_test");85 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);86 }87 @Test88 public void testValidateMessageHeadersMatcherSupport() throws Exception {89 Message receivedMessage = new DefaultMessage("Hello World!")90 .setHeader("foo", "foo_test")91 .setHeader("additional", "additional")92 .setHeader("bar", "bar_test");93 Message controlMessage = new DefaultMessage("Hello World!")94 .setHeader("foo", "@startsWith('foo')@")95 .setHeader("bar", "@endsWith('_test')@");96 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);97 }98 @Test99 public void testValidateMessageHeadersHamcrestMatcherSupport() throws Exception {100 Message receivedMessage = new DefaultMessage("Hello World!")101 .setHeader("foo", "foo_test")102 .setHeader("additional", "additional")103 .setHeader("bar", "bar_test");104 Message controlMessage = new DefaultMessage("Hello World!")105 .setHeader("foo", startsWith("foo"))106 .setHeader("bar", endsWith("_test"));107 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);108 }109 @Test(expectedExceptions = ValidationException.class)110 public void testValidateError() throws Exception {111 Message receivedMessage = new DefaultMessage("Hello World!")112 .setHeader("foo", "other_value")113 .setHeader("bar", "bar_test");114 Message controlMessage = new DefaultMessage("Hello World!")115 .setHeader("foo", "foo_test")116 .setHeader("bar", "bar_test");117 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);118 }119 120 @Test(expectedExceptions = IllegalArgumentException.class)121 public void testValidateHamcrestMatcherError() throws Exception {122 Message receivedMessage = new DefaultMessage("Hello World!")123 .setHeader("foo", "foo_test")124 .setHeader("bar", "bar_test");125 Message controlMessage = new DefaultMessage("Hello World!")126 .setHeader("foo", startsWith("bar"))127 .setHeader("bar", endsWith("_test"));128 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);129 }130 @Test(expectedExceptions = ValidationException.class)131 public void testValidateErrorMissingHeader() throws Exception {132 Message receivedMessage = new DefaultMessage("Hello World!")133 .setHeader("bar", "bar_test");134 Message controlMessage = new DefaultMessage("Hello World!")135 .setHeader("foo", "foo_test")136 .setHeader("bar", "bar_test");137 validator.validateMessage(receivedMessage, controlMessage, context, validationContext);138 }139}...

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.validation;2import com.consol.citrus.context.TestContext;3import com.consol.citrus.exceptions.ValidationException;4import com.consol.citrus.message.DefaultMessage;5import com.consol.citrus.message.Message;6import com.consol.citrus.message.MessageHeaderType;7import com.consol.citrus.validation.context.ValidationContext;8import com.consol.citrus.validation.context.XmlValidationContext;9import com.consol.citrus.validation.matcher.ValidationMatcherUtils;10import org.springframework.util.Assert;11import org.springframework.util.StringUtils;12import org.testng.annotations.Test;13import java.util.HashMap;14import java.util.Map;15public class DefaultMessageHeaderValidatorTest {16 private DefaultMessageHeaderValidator messageHeaderValidator = new DefaultMessageHeaderValidator();17 public void testValidateMessageHeader() {18 Map<String, Object> controlHeaders = new HashMap<String, Object>();19 controlHeaders.put("operation", "sayHello");20 controlHeaders.put("correlationId", "1234567890");21 Map<String, Object> testHeaders = new HashMap<String, Object>();22 testHeaders.put("operation", "sayHello");23 testHeaders.put("correlationId", "1234567890");24 Message controlMessage = new DefaultMessage("Hello Citrus!").setHeaders(controlHeaders);25 Message testMessage = new DefaultMessage("Hello Citrus!").setHeaders(testHeaders);26 messageHeaderValidator.validateMessageHeader(controlMessage, testMessage, new XmlValidationContext());27 }28 @Test(expectedExceptions = ValidationException.class)29 public void testValidateMessageHeaderWithWrongHeader() {30 Map<String, Object> controlHeaders = new HashMap<String, Object>();31 controlHeaders.put("operation", "sayHello");32 controlHeaders.put("correlationId", "1234567890");33 Map<String, Object> testHeaders = new HashMap<String, Object>();34 testHeaders.put("operation", "sayHello");35 testHeaders.put("correlationId", "1234567891");36 Message controlMessage = new DefaultMessage("Hello Citrus!").setHeaders(controlHeaders);37 Message testMessage = new DefaultMessage("Hello Citrus!").setHeaders(testHeaders);38 messageHeaderValidator.validateMessageHeader(controlMessage, testMessage, new XmlValidationContext());39 }40 public void testValidateMessageHeaderWithIgnoreHeader() {

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.samples;2import com.consol.citrus.context.TestContext;3import com.consol.citrus.message.DefaultMessageHeaderValidator;4import com.consol.citrus.message.Message;5import com.consol.citrus.message.MessageType;6import com.consol.citrus.message.MessageValidator;7import com.consol.citrus.message.MessageValidatorRegistry;8import com.consol.citrus.message.MessageValidatorRegistryImpl;9import com.consol.citrus.message.MessageValidatorUtils;10import com.consol.citrus.message.builder.DefaultMessageBuilder;11import com.consol.citrus.message.builder.ObjectMappingPayloadBuilder;12import com.consol.citrus.message.builder.PayloadTemplateMessageBuilder;13import com.consol.citrus.message.builder.StaticMessageContentBuilder;14import com.consol.citrus.message.builder.XPathMessageBuilder;15import com.consol.citrus.message.builder.XQueryMessageBuilder;16import com.consol.citrus.message.builder.XsdSchemaValidationMessageBuilder;17import com.consol.citrus.message.builder.XsltPayloadBuilder;18import com.consol.citrus.message.builder.XsltPayloadTemplateMessageBuilder;19import com.consol.citrus.message.correlation.CorrelationKeyExtractor;20import com.consol.citrus.message.correlation.XPathCorrelationKeyExtractor;21import com.consol.citrus.message.correlation.XpathMessageSelector;22import com.consol.citrus.message.correlation.XpathPayloadVariableExtractor;23import com.consol.citrus.message.selector.MessageSelector;24import com.consol.citrus.message.selector.XPathMessageSelector;25import com.consol.citrus.message.selector.XpathPayloadVariableExtractor;26import com.consol.citrus.messa

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus;2import java.util.HashMap;3import java.util.Map;4import org.springframework.context.ApplicationContext;5import org.springframework.context.support.ClassPathXmlApplicationContext;6import com.consol.citrus.message.DefaultMessage;7import com.consol.citrus.message.Message;8import com.consol.citrus.validation.DefaultMessageHeaderValidator;9public class 4 {10 public static void main(String[] args) {11 ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:com/consol/citrus/spring/citrus-context.xml");12 DefaultMessageHeaderValidator defaultHeaderValidator = (DefaultMessageHeaderValidator) ctx.getBean("defaultHeaderValidator");13 Map<String, Object> headers = new HashMap<String, Object>();14 headers.put("operation", "add");15 headers.put("id", "123");16 headers.put("citrus_http_status_code", "200");17 Message message = new DefaultMessage("Hello World").setHeaders(headers);18 Map<String, Object> headers1 = new HashMap<String, Object>();19 headers1.put("operation", "add");20 headers1.put("id", "123");21 headers1.put("citrus_http_status_code", "200");22 Message message1 = new DefaultMessage("Hello World").setHeaders(headers1);23 defaultHeaderValidator.validateMessage(message, message1);24 }25}26 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)27 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)28 at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:668)29 at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)30 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)31 at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)32 at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.validation;2import org.springframework.context.support.ClassPathXmlApplicationContext;3import org.springframework.core.io.ClassPathResource;4import org.testng.annotations.Test;5import com.consol.citrus.context.TestContext;6import com.consol.citrus.context.TestContextFactory;7import com.consol.citrus.exceptions.ValidationException;8import com.consol.citrus.message.DefaultMessage;9import com.consol.citrus.message.Message;10import com.consol.citrus.message.MessageType;11import com.consol.citrus.message.MessageTypeResolver;12import com.consol.citrus.validation.context.ValidationContext;13import com.consol.citrus.validation.xml.XmlMessageValidationContext;14public class DefaultMessageHeaderValidatorTest {15 public void testValidateMessage() {16 Message receivedMessage = new DefaultMessage("<testMessage><text>Hello World!</text></testMessage>").setHeader("operation", "testOperation");17 Message controlMessage = new DefaultMessage("<testMessage><text>Hello World!</text></testMessage>").setHeader("operation", "testOperation");18 TestContext context = new TestContextFactory().getObject();19 MessageTypeResolver messageTypeResolver = new ClassPathXmlApplicationContext("com/consol/citrus/validation/DefaultMessageHeaderValidatorTest-context.xml").getBean("messageTypeResolver", MessageTypeResolver.class);20 ValidationContext validationContext = new XmlMessageValidationContext();21 DefaultMessageHeaderValidator defaultMessageHeaderValidator = new DefaultMessageHeaderValidator();22 defaultMessageHeaderValidator.validateMessage(receivedMessage, controlMessage, context, validationContext, messageTypeResolver);23 }24 @Test(expectedExceptions = ValidationException.class)25 public void testValidateMessageWithException() {26 Message receivedMessage = new DefaultMessage("<testMessage><text>Hello World!</text></testMessage>").setHeader("operation", "testOperation");27 Message controlMessage = new DefaultMessage("<testMessage><text>Hello World!</text></testMessage>").setHeader("operation", "testOperation1");28 TestContext context = new TestContextFactory().getObject();29 MessageTypeResolver messageTypeResolver = new ClassPathXmlApplicationContext("com/consol/citrus/validation/DefaultMessageHeaderValidatorTest-context.xml").getBean("messageTypeResolver", MessageTypeResolver.class);30 ValidationContext validationContext = new XmlMessageValidationContext();

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus;2import java.util.HashMap;3import java.util.Map;4import org.testng.annotations.Test;5import com.consol.citrus.context.TestContext;6import com.consol.citrus.message.DefaultMessage;7import com.consol.citrus.message.Message;8import com.consol.citrus.validation.DefaultMessageHeaderValidator;9import com.consol.citrus.validation.MessageHeaderValidator;10import com.consol.citrus.validation.context.ValidationContext;11public class 4 {12 public void validateMessage() {13 Message message = new DefaultMessage("Hello World");14 Map<String, Object> header = new HashMap<String, Object>();15 header.put("key1", "value1");16 header.put("key2", "value2");17 message.setHeaders(header);18 ValidationContext validationContext = new ValidationContext();19 MessageHeaderValidator messageHeaderValidator = new DefaultMessageHeaderValidator();20 messageHeaderValidator.validateMessageHeader(message, validationContext, new TestContext());21 }22}23package com.consol.citrus;24import java.util.HashMap;25import java.util.Map;26import org.testng.annotations.Test;27import com.consol.citrus.context.TestContext;28import com.consol.citrus.message.DefaultMessage;29import com.consol.citrus.message.Message;30import com.consol.citrus.validation.DefaultMessageHeaderValidator;31import com.consol.citrus.validation.MessageHeaderValidator;32import com.consol.citrus.validation.context.ValidationContext;33public class 5 {34 public void validateMessage() {35 Message message = new DefaultMessage("Hello World");36 Map<String, Object> header = new HashMap<String, Object>();37 header.put("key1", "value1");38 header.put("key2", "value2");39 message.setHeaders(header);40 ValidationContext validationContext = new ValidationContext();

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.samples;2import java.util.HashMap;3import java.util.Map;4import org.testng.annotations.Test;5import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;6import com.consol.citrus.message.MessageType;7public class ValidateMessageHeaders extends TestNGCitrusTestDesigner {8 public void validateMessageHeaders() {9 variable("messageId", "1234567890");10 variable("messageType", "text");11 variable("messageEncoding", "UTF-8");12 variable("messageVersion", "1.0");13 variable("messageSender", "citrus");14 variable("messageReceiver", "citrus");15 variable("messageCorrelationId", "0987654321");16 variable("messagePayload", "Hello Citrus!");17 Map<String, Object> headers = new HashMap<>();18 headers.put("messageId", "${messageId}");19 headers.put("messageType", "${messageType}");20 headers.put("messageEncoding", "${messageEncoding}");21 headers.put("messageVersion", "${messageVersion}");22 headers.put("messageSender", "${messageSender}");23 headers.put("messageReceiver", "${messageReceiver}");24 headers.put("messageCorrelationId", "${messageCorrelationId}");25 http(httpActionBuilder -> httpActionBuilder26 .client("httpClient")27 .send()28 .post()29 .payload("${messagePayload}")30 .headers(headers));31 http(httpActionBuilder -> httpActionBuilder32 .client("httpClient")33 .receive()34 .response(HttpStatus.OK)35 .messageType(MessageType.PLAINTEXT)36 .validateMessage((message, context) -> {37 context.getMessageHeaderValidator().validateMessageHeader(message, "messageId", "${messageId}");38 context.getMessageHeaderValidator().validateMessageHeader(message, "messageType", "${messageType}");39 context.getMessageHeaderValidator().validateMessageHeader(message, "messageEncoding", "${messageEncoding}");40 context.getMessageHeaderValidator().validateMessageHeader(message, "messageVersion", "${messageVersion}");41 context.getMessageHeaderValidator().validateMessageHeader(message, "messageSender", "${messageSender}");42 context.getMessageHeaderValidator().validateMessageHeader(message, "messageReceiver", "${messageReceiver}");43 context.getMessageHeaderValidator().validateMessageHeader(message, "messageCorrelationId", "${messageCorrelationId}");44 }));45 }46}

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus;2import org.testng.annotations.Test;3import org.testng.Assert;4import org.testng.annotations.BeforeTest;5import org.testng.annotations.AfterTest;6import com.consol.citrus.message.DefaultMessage;7import com.consol.citrus.message.Message;8import com.consol.citrus.validation.DefaultMessageHeaderValidator;9import com.consol.citrus.validation.MessageHeaderValidator;10import java.util.HashMap;11import java.util.Map;12public class DefaultMessageHeaderValidatorTest {13 MessageHeaderValidator messageHeaderValidator;14 Message message;15 public void beforeTest() {16 messageHeaderValidator = new DefaultMessageHeaderValidator();17 Map<String, Object> headers = new HashMap<String, Object>();18 headers.put("operation", "add");19 headers.put("requestId", "1234");20 message = new DefaultMessage("Hello World").setHeaders(headers);21 }22 public void testValidateMessage() {23 Map<String, Object> headers = new HashMap<String, Object>();24 headers.put("operation", "add");25 headers.put("requestId", "1234");26 Message message = new DefaultMessage("Hello World").setHeaders(headers);27 messageHeaderValidator.validateMessageHeader(message, message);28 }29 public void testValidateMessageWithNullMessage() {30 Map<String, Object> headers = new HashMap<String, Object>();31 headers.put("operation", "add");32 headers.put("requestId", "1234");33 Message message = new DefaultMessage("Hello World").setHeaders(headers);34 messageHeaderValidator.validateMessageHeader(message, null);35 }36 public void testValidateMessageWithNullHeaders() {37 Map<String, Object> headers = new HashMap<String, Object>();38 headers.put("operation", "add");39 headers.put("requestId", "1234");40 Message message = new DefaultMessage("Hello World").setHeaders(headers);41 messageHeaderValidator.validateMessageHeader(null, message);42 }43 public void testValidateMessageWithNullMessageAndNullHeaders() {44 messageHeaderValidator.validateMessageHeader(null, null);45 }46 public void testValidateMessageWithDifferentHeaders() {47 Map<String, Object> headers = new HashMap<String, Object>();48 headers.put("operation", "add");49 headers.put("requestId", "1234");

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1 public void test4() {2 description("Test4");3 variable("var1", "value1");4 variable("var2", "value2");5 variable("var3", "value3");6 variable("var4", "value4");7 variable("var5", "value5");8 variable("var6", "value6");9 variable("var7", "value7");10 variable("var8", "value8");11 variable("var9", "value9");12 variable("var10", "value10");13 variable("var11", "value11");14 variable("var12", "value12");15 variable("var13", "value13");16 variable("var14", "value14");17 variable("var15", "value15");18 variable("var16", "value16");19 variable("var17", "value17");20 variable("var18", "value18");21 variable("var19", "value19");22 variable("var20", "value20");23 variable("var21", "value21");24 variable("var22", "value22");25 variable("var23", "value23");26 variable("var24", "value24");27 variable("var25", "value25");28 variable("var26", "value26");29 variable("var27", "value27");30 variable("var28", "value28");31 variable("var29", "value29");32 variable("var30", "value30");33 variable("var31", "value31");34 variable("var32", "value32");35 variable("var33", "value33");36 variable("var34", "value34");37 variable("var35", "value35");38 variable("var36", "value36");39 variable("var37", "value37");40 variable("var38", "value38");41 variable("var39", "value39");42 variable("var40", "value40");43 variable("var41", "value41");44 variable("var42", "value42");45 variable("var43", "value43");46 variable("var44", "value44");47 variable("var45", "value45");48 variable("var46", "value46");49 variable("var47", "value47");50 variable("var48", "value48

Full Screen

Full Screen

validateMessage

Using AI Code Generation

copy

Full Screen

1package com.consol.citrus.samples;2import com.consol.citrus.dsl.testng.TestNGCitrusTestDesigner;3import com.consol.citrus.message.MessageType;4import org.springframework.http.HttpStatus;5import org.springframework.http.MediaType;6import org.springframework.web.bind.annotation.RequestMethod;7import org.testng.annotations.Test;8public class 4 extends TestNGCitrusTestDesigner {9public void 4() {10http(httpActionBuilder -> httpActionBuilder11.client("httpclient")12.send()13.post()14.payload("<testRequest><Message>Hello World!</Message></testRequest>")15.contentType("text/xml")16.header("operation", "greet")17.header("citrus_http_method", "POST")18.header("citrus_http_query", "name=John")19.header("citrus_http_version", "HTTP/1.1")20.header("citrus_http_scheme", "http")21.header("citrus_http_path", "/services/greeting")22.header("citrus_http_host", "localhost:8080")23.header("citrus_http_request_uri", "/services/greeting?name=John")24.header("citrus_http_request_path", "/services/greeting")25.header("citrus_http_request_method", "POST"));26http(httpActionBuilder -> httpActionBuilder27.client("httpclient")28.receive()29.response(HttpStatus.OK)30.payload("<testResponse><Message>Hello John!</Message></testResponse>")31.validateMessage((message, context) -> {32new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_status_code", "200");33new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_version", "HTTP/1.1");34new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_reason_phrase", "OK");35new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_method", "POST");36new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_query", "name=John");37new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_scheme", "http");38new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_path", "/services/greeting");39new DefaultMessageHeaderValidator().validateMessageHeader(message, "citrus_http_host", "localhost:8080");40new DefaultMessageHeaderValidator().validateMessageHeader(message

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Citrus automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful