use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class HttpEndpointTest method testQueryParamsWithLegacyEncoding.
/**
* Test usage of legacy-encoding property where encoded values will be decoded
* @throws AxisFault
* @throws XMLStreamException
*/
@Test
public void testQueryParamsWithLegacyEncoding() throws AxisFault, XMLStreamException {
HTTPEndpointFactory factory = new HTTPEndpointFactory();
OMElement em = AXIOMUtil.stringToOM("<endpoint><http method=\"GET\" uri-template=\"http://abc.com?symbol={query.param.symbol}&user={query.param.user}\"/></endpoint>");
EndpointDefinition ep1 = factory.createEndpointDefinition(em);
HTTPEndpoint httpEndpoint = new HTTPEndpoint();
httpEndpoint.setHttpMethod("GET");
httpEndpoint.setLegacySupport(true);
httpEndpoint.setDefinition(ep1);
httpEndpoint.setUriTemplate(UriTemplate.fromTemplate("http://abc.com?symbol={query.param.symbol}&user={query.param.user}"));
SynapseEnvironment synapseEnvironment = getMockedSynapseEnvironment();
httpEndpoint.init(getMockedSynapseEnvironment());
MessageContext messageContext = createMessageContext();
messageContext.setProperty("query.param.symbol", "US%3A123");
messageContext.setProperty("query.param.user", "john%40G%C3%BCnter");
// set mocked SynapseEnvironment to message context
((Axis2MessageContext) messageContext).getAxis2MessageContext().getConfigurationContext().getAxisConfiguration().addParameter(SynapseConstants.SYNAPSE_ENV, synapseEnvironment);
messageContext.setEnvironment(synapseEnvironment);
httpEndpoint.executeEpTypeSpecificFunctions(messageContext);
Assert.assertEquals("With legacy encoding encoded characters need to be decoded", "http://abc.com?symbol=US:123&user=john@Günter", messageContext.getTo().getAddress().toString());
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class RecipientListEndpointTest method testSendMessageToMembers.
/**
* Test on Sending messages to different members using RecipientListEndpoint
*/
@Test
public void testSendMessageToMembers() throws Exception {
// perform init
Axis2SynapseEnvironment synapseEnvironment = getMockedSynapseEnvironment();
RecipientListEndpoint recipientListEndpoint = new RecipientListEndpoint();
recipientListEndpoint.init(synapseEnvironment);
Mockito.when(synapseEnvironment.createMessageContext()).thenReturn(createMessageContext());
// set members
Member member1 = new Member("localhost", 9000);
Member member2 = new Member("localhost", 9001);
ArrayList<Member> members = new ArrayList<>(2);
members.add(member1);
members.add(member2);
recipientListEndpoint.setMembers(members);
// test send message
String samplePayload = "<test>value</test>";
Axis2MessageContext messageContext = getMessageContext(samplePayload);
// message will be sent to EP using this env (which is mocked and do nothing)
messageContext.setEnvironment(synapseEnvironment);
messageContext.setTo(new EndpointReference("http://localhost:9000/services/SimpleStockQuoteService"));
recipientListEndpoint.sendMessage(messageContext);
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class RecipientListEndpointTest method createMessageContext.
/**
* Create a empty message context
*
* @return A context with empty message
* @throws AxisFault on an error creating a context
*/
private MessageContext createMessageContext() throws AxisFault {
Axis2SynapseEnvironment synapseEnvironment = new Axis2SynapseEnvironment(new SynapseConfiguration());
org.apache.axis2.context.MessageContext axis2MC = new org.apache.axis2.context.MessageContext();
axis2MC.setConfigurationContext(new ConfigurationContext(new AxisConfiguration()));
ServiceContext svcCtx = new ServiceContext();
OperationContext opCtx = new OperationContext(new InOutAxisOperation(), svcCtx);
axis2MC.setServiceContext(svcCtx);
axis2MC.setOperationContext(opCtx);
MessageContext mc = new Axis2MessageContext(axis2MC, new SynapseConfiguration(), synapseEnvironment);
mc.setMessageID(UIDGenerator.generateURNString());
mc.setEnvelope(OMAbstractFactory.getSOAP12Factory().createSOAPEnvelope());
mc.getEnvelope().addChild(OMAbstractFactory.getSOAP12Factory().createSOAPBody());
return mc;
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class RecipientListEndpointTest method testSendToDynamicMembers.
/**
* Test on Sending messages to a dynamic EP based on an expression
*
* @throws Exception on test failure
*/
@Test
public void testSendToDynamicMembers() throws Exception {
// perform init
Axis2SynapseEnvironment synapseEnvironment = getMockedSynapseEnvironment();
RecipientListEndpoint recipientListEndpoint = new RecipientListEndpoint(2);
recipientListEndpoint.init(synapseEnvironment);
Mockito.when(synapseEnvironment.createMessageContext()).thenReturn(createMessageContext());
// add dynamic EPs
Value dynamicEPs = new Value(new SynapseXPath("//endpoints"));
recipientListEndpoint.setDynamicEnpointSet(dynamicEPs);
// test send message
String samplePayload = "<test><endpoints>http://localhost:9000/services/SimpleStockQuoteService," + "http://localhost:9001/services/SimpleStockQuoteService" + "</endpoints><body>wso2</body></test>";
Axis2MessageContext messageContext = getMessageContext(samplePayload);
// message will be sent to EP using this env (which is mocked and do nothing)
messageContext.setEnvironment(synapseEnvironment);
// messageContext.setTo(new EndpointReference("http://localhost:9000/services/SimpleStockQuoteService"));
recipientListEndpoint.sendMessage(messageContext);
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class HeaderMediatorTest method testSimpleHTTPHeaderSetAndRemove.
public void testSimpleHTTPHeaderSetAndRemove() throws Exception {
Map transportHeaders;
String httpHeaderName = "content-type";
String httpHeaderValue = "application/json";
HeaderMediator headerMediator = new HeaderMediator();
headerMediator.setQName(new QName(httpHeaderName));
headerMediator.setValue(httpHeaderValue);
headerMediator.setScope(XMLConfigConstants.SCOPE_TRANSPORT);
// invoke transformation, with static enveope
MessageContext synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>");
headerMediator.mediate(synCtx);
org.apache.axis2.context.MessageContext axisCtx = ((Axis2MessageContext) synCtx).getAxis2MessageContext();
transportHeaders = (Map) axisCtx.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
assertTrue(httpHeaderValue.equals(transportHeaders.get(httpHeaderName)));
// set the header mediator as a remove-header
headerMediator.setAction(HeaderMediator.ACTION_REMOVE);
headerMediator.mediate(synCtx);
transportHeaders = (Map) axisCtx.getProperty(org.apache.axis2.context.MessageContext.TRANSPORT_HEADERS);
assertNull(transportHeaders.get(httpHeaderName));
}
Aggregations