}
public void testInOptionalOutWithAnswerAndFaultAndError() throws Exception {
activateComponent(new ReturnOutAndErrorComponent(), "target");
InOptionalOut me = client.createInOptionalOutExchange();
me.setService(new QName("wireTap"));
me.getInMessage().setContent(createSource("<hello/>"));
client.sendSync(me);
assertEquals(ExchangeStatus.ACTIVE, me.getStatus());
assertNotNull(me.getOutMessage());
Fault fault = me.createFault();
fault.setContent(createSource("<fault/>"));
me.setFault(fault);
client.sendSync(me);
assertEquals(ExchangeStatus.ERROR, me.getStatus());
inReceiver.getMessageList().assertMessagesReceived(1);
outReceiver.getMessageList().assertMessagesReceived(1);
faultReceiver.getMessageList().assertMessagesReceived(1);