package won.node.camel.processor;
import org.apache.jena.query.DatasetFactory;
import junit.framework.Assert;
import org.apache.camel.Exchange;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import won.node.camel.processor.fixed.CreateNeedMessageProcessor;
import won.node.camel.processor.general.MessageTypeSlipComputer;
import won.protocol.message.WonMessage;
import won.protocol.message.WonMessageDirection;
import won.protocol.message.processor.camel.WonCamelConstants;
import won.protocol.vocabulary.WON;
import won.protocol.vocabulary.WONMSG;
import java.net.URI;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/spring/refactoring/message-processors.xml"})
public class WonMessageSlipComputerTests
{
@Autowired
MessageTypeSlipComputer wonMessageSlipComputer;
@Autowired
CreateNeedMessageProcessor test;
public void setTest(final CreateNeedMessageProcessor test) {
this.test = test;
}
@Test
public void testCreateFromOwner() throws Exception {
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CREATE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("createNeedMessageProcessor", slip);
}
@Test
public void testActivateNeedMessage() throws Exception {
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_ACTIVATE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WONMSG.TYPE_FROM_OWNER.getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("activateNeedMessageProcessor", slip);
}
@Test
public void testCloseMessageFromNode() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CLOSE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("closeMessageFromNodeProcessor,closeFromNodeOwnerFacetImpl",slip);
}
@Test
public void testCloseMessageFromOwner() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CLOSE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("closeMessageFromOwnerProcessor,closeFromOwnerOwnerFacetImpl", slip);
}
@Test
public void testConnectMessageFromNode() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CONNECT_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString
()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("connectMessageFromNodeProcessor,connectFromNodeOwnerFacetImpl", slip);
}
@Test
public void testConnectMessageFromOwner() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CONNECT_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("connectMessageFromOwnerProcessor,connectFromOwnerOwnerFacetImpl", slip);
}
@Test
public void testDeactivateNeedMessageFromOwner() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_DEACTIVATE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("deactivateNeedMessageProcessor", slip);
}
@Test
public void testHintMessageProcessor() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_HINT_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(
WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("hintMessageProcessor", slip);
}
@Test
public void testOpenMessageFromNode() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_OPEN_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("openMessageFromNodeProcessor,openFromNodeOwnerFacetImpl", slip);
}
@Test
public void testOpenMessageFromOwner() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_OPEN_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("openMessageFromOwnerProcessor,openFromOwnerOwnerFacetImpl", slip);
}
@Test
public void testSendMessageFromNode() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CONNECTION_MESSAGE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("sendMessageFromNodeProcessor,sendMessageFromNodeOwnerFacetImpl", slip);
}
@Test
public void testSendMessageFromOwner() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CONNECTION_MESSAGE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_OWNER.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.OWNER_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("sendMessageFromOwnerProcessor,sendMessageFromOwnerOwnerFacetImpl",slip);
}
@Test
public void testSendMessageFromNodeGroupFacet() throws Exception{
Exchange exchange = new DefaultExchange(new DefaultCamelContext());
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_HEADER, new WonMessage(DatasetFactory.createGeneral()));
exchange.getIn().setHeader(WonCamelConstants.MESSAGE_TYPE_HEADER, URI.create(WONMSG.TYPE_CONNECTION_MESSAGE_STRING));
exchange.getIn().setHeader(WonCamelConstants.DIRECTION_HEADER, URI.create(WonMessageDirection.FROM_EXTERNAL.getResource().getURI().toString()));
exchange.getIn().setHeader(WonCamelConstants.FACET_TYPE_HEADER,URI.create(WON.GROUP_FACET_STRING));
String slip = wonMessageSlipComputer.evaluate(exchange,String.class);
Assert.assertEquals("sendMessageFromNodeProcessor,sendMessageFromNodeGroupFacetImpl", slip);
}
public void setWonMessageFixedSlipComputer(final MessageTypeSlipComputer wonMessageFixedSlipComputer) {
this.wonMessageSlipComputer = wonMessageFixedSlipComputer;
}
}