@Test
public void testDoProcessing() throws Exception {

	MessageContext mc = new MessageContext();
	mc.setFLOW(MessageContext.OUT_FLOW);
	mc.setServerSide(false);
    
	PMode pmode = TestUtils.create1WaySendPushPMode();        
    Leg leg = pmode.getLeg(Label.REQUEST);
    // Setting all protocol configurations checked by the tested handler
	Protocol protocolConfig = leg.getProtocol();
	protocolConfig.setHTTPCompression(true);
	protocolConfig.setChunking(true);
	leg.setProtocol(protocolConfig);
	
	HolodeckB2BCore.getPModeSet().add(pmode);
	
	UserMessage userMessage = new UserMessage();
	userMessage.setPModeId(pmode.getId());
    
	IMessageProcessingContext procCtx = MessageProcessingContext.getFromMessageContext(mc);
	procCtx.setUserMessage(HolodeckB2BCore.getStorageManager().storeOutGoingMessageUnit(userMessage));
	
	try {
		assertEquals(Handler.InvocationResponse.CONTINUE, new ConfigureHTTPTransportHandler().invoke(mc));
	} catch (Exception e) {
		fail(e.getMessage());
	}
	
	assertEquals(protocolConfig.getAddress(), mc.getProperty(Constants.Configuration.TRANSPORT_URL));
	
	Options options = mc.getOptions();
	assertNotNull(options);
	assertTrue((Boolean) options.getProperty(HTTPConstants.MC_GZIP_REQUEST));
	assertTrue((Boolean) options.getProperty(HTTPConstants.CHUNKED));
	assertFalse((Boolean) options.getProperty(Constants.Configuration.ENABLE_SWA));
}