@Test
public void testPopupalteExchangeFromCxfRequest() {
DefaultCxfBinding cxfBinding = new DefaultCxfBinding();
cxfBinding.setHeaderFilterStrategy(new DefaultHeaderFilterStrategy());
Exchange exchange = new DefaultExchange(context);
org.apache.cxf.message.Exchange cxfExchange = new org.apache.cxf.message.ExchangeImpl();
exchange.setProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.PAYLOAD);
org.apache.cxf.message.Message cxfMessage = new org.apache.cxf.message.MessageImpl();
Map<String, List<String>> headers = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER);
headers.put("content-type", Arrays.asList("text/xml;charset=UTF-8"));
headers.put("Content-Length", Arrays.asList("241"));
headers.put("soapAction", Arrays.asList("urn:hello:world"));
headers.put("myfruitheader", Arrays.asList("peach"));
headers.put("mybrewheader", Arrays.asList("cappuccino", "espresso"));
cxfMessage.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, headers);
Set<Attachment> attachments = new HashSet<Attachment>();
attachments.add(new AttachmentImpl("att-1", new DataHandler(new FileDataSource("pom.xml"))));
cxfMessage.setAttachments(attachments);
cxfExchange.setInMessage(cxfMessage);
cxfBinding.populateExchangeFromCxfRequest(cxfExchange, exchange);
Map<String, Object> camelHeaders = exchange.getIn().getHeaders();
assertNotNull(camelHeaders);
assertEquals("urn:hello:world", camelHeaders.get("soapaction"));
assertEquals("urn:hello:world", camelHeaders.get("SoapAction"));
assertEquals("text/xml;charset=UTF-8", camelHeaders.get("content-type"));
assertEquals("241", camelHeaders.get("content-length"));
assertEquals("peach", camelHeaders.get("MyFruitHeader"));
assertEquals(Arrays.asList("cappuccino", "espresso"), camelHeaders.get("MyBrewHeader"));
Map<String, DataHandler> camelAttachments = exchange.getIn().getAttachments();
assertNotNull(camelAttachments);
assertNotNull(camelAttachments.get("att-1"));
}