@Test @SuppressWarnings("rawtypes") public void testSoapMessageWithAttachmentDataTest() throws Exception { SendSoapMessageAction soapMessageAction = new SendSoapMessageAction(); soapMessageAction.setMessageSender(messageSender); PayloadTemplateMessageBuilder messageBuilder = new PayloadTemplateMessageBuilder(); messageBuilder.setPayloadData("<TestRequest><Message>Hello World!</Message></TestRequest>"); soapMessageAction.setMessageBuilder(messageBuilder); soapMessageAction.setContentId("myAttachment"); soapMessageAction.setContentType("text/xml"); soapMessageAction.setAttachmentData( "<TestAttachment><Message>Hello World!</Message></TestAttachment>"); soapMessageAction.setCharsetName("UTF-16"); reset(messageSender); messageSender.send((Message) anyObject(), (Attachment) anyObject()); expectLastCall() .andAnswer( new IAnswer<Object>() { public Object answer() throws Throwable { SoapAttachment constructedAttachment = (SoapAttachment) EasyMock.getCurrentArguments()[1]; Assert.assertEquals(constructedAttachment.getContentId(), "myAttachment"); Assert.assertEquals(constructedAttachment.getContentType(), "text/xml"); Assert.assertEquals( constructedAttachment.getContent(), "<TestAttachment><Message>Hello World!</Message></TestAttachment>"); Assert.assertEquals(constructedAttachment.getCharsetName(), "UTF-16"); return null; } }) .once(); replay(messageSender); soapMessageAction.execute(context); verify(messageSender); }
@Test @SuppressWarnings("rawtypes") public void testSoapMessageWithHeaderResourceVariableSupportTest() throws Exception { SendSoapMessageAction soapMessageAction = new SendSoapMessageAction(); soapMessageAction.setMessageSender(messageSender); PayloadTemplateMessageBuilder messageBuilder = new PayloadTemplateMessageBuilder(); messageBuilder.setPayloadData("<TestRequest><Message>Hello World!</Message></TestRequest>"); context.setVariable("operation", "soapOperation"); messageBuilder.setMessageHeaderResource( new ClassPathResource( "test-header-resource-with-variables.xml", SendSoapMessageActionTest.class)); soapMessageAction.setMessageBuilder(messageBuilder); reset(messageSender); messageSender.send((Message) anyObject()); expectLastCall() .andAnswer( new IAnswer<Object>() { public Object answer() throws Throwable { Message constructedMessage = (Message) EasyMock.getCurrentArguments()[0]; Assert.assertNotNull( constructedMessage.getHeaders().get(CitrusMessageHeaders.HEADER_CONTENT)); Assert.assertEquals( constructedMessage.getHeaders().get(CitrusMessageHeaders.HEADER_CONTENT), "<TestHeader><operation>soapOperation</operation></TestHeader>"); return null; } }) .once(); replay(messageSender); soapMessageAction.execute(context); verify(messageSender); }
@Test @SuppressWarnings("rawtypes") public void testSoapMessageWithEmptyAttachmentContentTest() throws Exception { SendSoapMessageAction soapMessageAction = new SendSoapMessageAction(); soapMessageAction.setMessageSender(messageSender); PayloadTemplateMessageBuilder messageBuilder = new PayloadTemplateMessageBuilder(); messageBuilder.setPayloadData("<TestRequest><Message>Hello World!</Message></TestRequest>"); soapMessageAction.setMessageBuilder(messageBuilder); reset(messageSender); messageSender.send((Message) anyObject()); expectLastCall().once(); replay(messageSender); soapMessageAction.execute(context); verify(messageSender); }
@Test public void testWrongMessageSenderImplementationTest() throws Exception { SendSoapMessageAction soapMessageAction = new SendSoapMessageAction(); MessageSender jmsMessageSender = new JmsMessageSender(); soapMessageAction.setMessageSender(jmsMessageSender); PayloadTemplateMessageBuilder messageBuilder = new PayloadTemplateMessageBuilder(); messageBuilder.setPayloadData("<TestRequest><Message>Hello World!</Message></TestRequest>"); soapMessageAction.setMessageBuilder(messageBuilder); try { soapMessageAction.execute(context); } catch (CitrusRuntimeException e) { Assert.assertEquals( e.getMessage(), "Sending SOAP messages requires a " + "'com.consol.citrus.ws.message.WebServiceMessageSender' but was 'com.consol.citrus.jms.JmsMessageSender'"); return; } Assert.fail("Missing exception because of unsupported MessageSender implementation"); }