use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class DynamicLoadBalanceEndpointTest 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);
axis2MC.setTransportIn(new TransportInDescription("http"));
axis2MC.setTo(new EndpointReference("http://localhost:9000/services/SimpleStockQuoteService"));
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 HttpEndpointTest method testQueryParamsAsUnreservedChars.
/**
* Tests sending sample characters that may be unreserved (@,: etc) as query parameter content
*/
@Test
public void testQueryParamsAsUnreservedChars() 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.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:123");
messageContext.setProperty("query.param.user", "john@gmail");
// set mocked SynapseEnvironment to message context
((Axis2MessageContext) messageContext).getAxis2MessageContext().getConfigurationContext().getAxisConfiguration().addParameter(SynapseConstants.SYNAPSE_ENV, synapseEnvironment);
messageContext.setEnvironment(synapseEnvironment);
httpEndpoint.executeEpTypeSpecificFunctions(messageContext);
Assert.assertEquals("Reserved characters need to be sent in default format without encoding", "http://abc.com?symbol=US:123&user=john@gmail", messageContext.getTo().getAddress().toString());
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class HttpEndpointTest method testQueryParamsAsReservedChars.
/**
* Tests sending sample reserved characters(@,:) as query parameter content
* @throws AxisFault
* @throws XMLStreamException
*/
@Test
public void testQueryParamsAsReservedChars() 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.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:123");
messageContext.setProperty("query.param.user", "john@gmail");
// set mocked SynapseEnvironment to message context
((Axis2MessageContext) messageContext).getAxis2MessageContext().getConfigurationContext().getAxisConfiguration().addParameter(SynapseConstants.SYNAPSE_ENV, synapseEnvironment);
messageContext.setEnvironment(synapseEnvironment);
httpEndpoint.executeEpTypeSpecificFunctions(messageContext);
Assert.assertEquals("Reserved characters need to be encoded", "http://abc.com?symbol=US%3A123&user=john%40gmail", messageContext.getTo().getAddress().toString());
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class RecipientListEndpointTest method getMessageContext.
/**
* Create a sample synapse message context with a simple payload
*
* @param payload payload of the envelope of message context
* @return Axis2MessageContext with payload and parameters
* @throws Exception on creating the context
*/
private Axis2MessageContext getMessageContext(String payload) throws Exception {
Map<String, Entry> properties = new HashMap<>();
Axis2MessageContext messageContext = TestUtils.getAxis2MessageContext(payload, properties);
messageContext.getAxis2MessageContext().setTransportIn(new TransportInDescription("http"));
return messageContext;
}
use of org.apache.synapse.core.axis2.Axis2MessageContext in project wso2-synapse by wso2.
the class RecipientListEndpointTest method testSendToEndpointList.
/**
* Create a RecipientListEndpoint by config and test sending a message
* @throws Exception on an issue sending out the message
*/
@Test
public void testSendToEndpointList() throws Exception {
OMElement omBody = AXIOMUtil.stringToOM("<endpoint><recipientlist xmlns=\"http://ws.apache.org/ns/synapse\">\n" + " <endpoint xmlns=\"http://ws.apache.org/ns/synapse\">\n" + " <address uri=\"http://localhost:9000/services/SimpleStockQuoteService\"/>\n" + " </endpoint>\n" + " <endpoint xmlns=\"http://ws.apache.org/ns/synapse\">\n" + " <address uri=\"http://localhost:9001/services/SimpleStockQuoteService\"/>\n" + " </endpoint>\n" + "</recipientlist></endpoint>");
RecipientListEndpoint recipientListEndpoint = (RecipientListEndpoint) EndpointFactory.getEndpointFromElement(omBody, true, null);
Axis2SynapseEnvironment synapseEnvironment = getMockedSynapseEnvironment();
Mockito.when(synapseEnvironment.createMessageContext()).thenReturn(createMessageContext());
// test send message
String samplePayload = "<test><a>WSO2</a></test>";
Axis2MessageContext messageContext = getMessageContext(samplePayload);
// message will be sent to EP using this env (which is mocked and do nothing)
messageContext.setEnvironment(synapseEnvironment);
recipientListEndpoint.init(synapseEnvironment);
recipientListEndpoint.sendMessage(messageContext);
}
Aggregations