### Question:
OutgoingChainInterceptor extends AbstractPhaseInterceptor<Message> { public void handleMessage(Message message) { Exchange ex = message.getExchange(); BindingOperationInfo binding = ex.getBindingOperationInfo(); if (message.getExchange().get(CACHE_INPUT_PROPERTY) == null) { message.put(CACHE_INPUT_PROPERTY, Boolean.TRUE); } if (null != binding && null != binding.getOperationInfo() && binding.getOperationInfo().isOneWay()) { closeInput(message); return; } Message out = ex.getOutMessage(); if (out != null) { try { getBackChannelConduit(message); } catch (IOException ioe) { throw new Fault(ioe); } if (binding != null) { out.put(MessageInfo.class, binding.getOperationInfo().getOutput()); out.put(BindingMessageInfo.class, binding.getOutput()); } InterceptorChain outChain = out.getInterceptorChain(); if (outChain == null) { outChain = OutgoingChainInterceptor.getChain(ex, chainCache); out.setInterceptorChain(outChain); } else if (outChain.getState() == InterceptorChain.State.PAUSED) { outChain.resume(); return; } outChain.doIntercept(out); } } OutgoingChainInterceptor(); void handleMessage(Message message); static InterceptorChain getOutInterceptorChain(Exchange ex);  }### Answer:
@Test public void testInterceptor() throws Exception { OutgoingChainInterceptor intc = new OutgoingChainInterceptor(); MessageImpl m = new MessageImpl(); Exchange exchange = new ExchangeImpl(); m.setExchange(exchange); exchange.put(Bus.class, bus); exchange.put(Endpoint.class, endpoint); exchange.put(Binding.class, binding); exchange.put(BindingOperationInfo.class, bopInfo); exchange.setOutMessage(m); intc.handleMessage(m); }