You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2013/03/13 00:21:04 UTC

svn commit: r1455750 - in /camel/trunk/components/camel-quickfix/src: main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java

Author: cmueller
Date: Tue Mar 12 23:21:04 2013
New Revision: 1455750

URL: http://svn.apache.org/r1455750
Log:
CAMEL-5979: Camel-Quickfix dynamic SenderSubId/TargetSubId issue

Modified:
    camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java
    camel/trunk/components/camel-quickfix/src/test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java

Modified: camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java?rev=1455750&r1=1455749&r2=1455750&view=diff
==============================================================================
--- camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java (original)
+++ camel/trunk/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjConsumer.java Tue Mar 12 23:21:04 2013
@@ -22,7 +22,6 @@ import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultConsumer;
 import org.quickfixj.QFJException;
-import quickfix.MessageUtils;
 import quickfix.Session;
 import quickfix.SessionID;
 
@@ -51,7 +50,7 @@ public class QuickfixjConsumer extends D
 
         log.debug("Sending FIX message reply: {}", quickfixjMessage);
 
-        SessionID messageSessionID = MessageUtils.getReverseSessionID(exchange.getIn().getBody(quickfix.Message.class));
+        SessionID messageSessionID = exchange.getIn().getHeader("SessionID", SessionID.class);
 
         Session session = getSession(messageSessionID);
         if (session == null) {

Modified: camel/trunk/components/camel-quickfix/src/test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quickfix/src/test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java?rev=1455750&r1=1455749&r2=1455750&view=diff
==============================================================================
--- camel/trunk/components/camel-quickfix/src/test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java (original)
+++ camel/trunk/components/camel-quickfix/src/test/java/org/apache/camel/component/quickfixj/QuickfixjConsumerTest.java Tue Mar 12 23:21:04 2013
@@ -29,7 +29,6 @@ import org.mockito.Matchers;
 import org.mockito.Mockito;
 import quickfix.FixVersions;
 import quickfix.Message;
-import quickfix.MessageUtils;
 import quickfix.Session;
 import quickfix.SessionID;
 import quickfix.field.BeginString;
@@ -40,7 +39,6 @@ public class QuickfixjConsumerTest {
     private Exchange mockExchange;
     private Processor mockProcessor;
     private Endpoint mockEndpoint;
-    private SessionID sessionID;
     private Message inboundFixMessage;
     
     @Before
@@ -54,7 +52,6 @@ public class QuickfixjConsumerTest {
         inboundFixMessage.getHeader().setString(BeginString.FIELD, FixVersions.BEGINSTRING_FIX44);
         inboundFixMessage.getHeader().setString(SenderCompID.FIELD, "SENDER");
         inboundFixMessage.getHeader().setString(TargetCompID.FIELD, "TARGET");
-        sessionID = MessageUtils.getSessionID(inboundFixMessage);
         Mockito.when(mockCamelMessage.getBody(quickfix.Message.class)).thenReturn(inboundFixMessage);
         
         mockProcessor = Mockito.mock(Processor.class);        
@@ -96,40 +93,53 @@ public class QuickfixjConsumerTest {
         
         Mockito.verify(mockExchange).setException(exception);
     }
-    
+
     @Test
     public void setExceptionOnInOutExchange() throws Exception {            
         org.apache.camel.Message mockCamelOutMessage = Mockito.mock(org.apache.camel.Message.class);
+        org.apache.camel.Message mockCamelInMessage = Mockito.mock(org.apache.camel.Message.class);
+        SessionID mockSessionId = Mockito.mock(SessionID.class);
+
+        QuickfixjConsumer consumer = Mockito.spy(new QuickfixjConsumer(mockEndpoint, mockProcessor));
+        Mockito.doReturn(null).when(consumer).getSession(mockSessionId);
+
         Mockito.when(mockExchange.getPattern()).thenReturn(ExchangePattern.InOut);
         Mockito.when(mockExchange.hasOut()).thenReturn(true);
         Mockito.when(mockExchange.getOut()).thenReturn(mockCamelOutMessage);
-        Mockito.when(mockCamelOutMessage.getBody(Message.class)).thenReturn(new Message());
-        
-        QuickfixjConsumer consumer = new QuickfixjConsumer(mockEndpoint, mockProcessor);
+        Message outboundFixMessage = new Message();
+        Mockito.when(mockCamelOutMessage.getBody(Message.class)).thenReturn(outboundFixMessage);
+        Mockito.when(mockExchange.getIn()).thenReturn(mockCamelInMessage);
+        Mockito.when(mockCamelInMessage.getHeader("SessionID", SessionID.class)).thenReturn(mockSessionId);
+
         consumer.start();
-        
+
         // Simulate a message from the FIX engine
         consumer.onExchange(mockExchange);
-        
+
         Mockito.verify(mockExchange).setException(Mockito.isA(IllegalStateException.class));
     }
 
     @Test
     public void processInOutExchange() throws Exception {
         org.apache.camel.Message mockCamelOutMessage = Mockito.mock(org.apache.camel.Message.class);
+        org.apache.camel.Message mockCamelInMessage = Mockito.mock(org.apache.camel.Message.class);
+        SessionID mockSessionId = Mockito.mock(SessionID.class);
+        Session mockSession = Mockito.mock(Session.class);
+
+        QuickfixjConsumer consumer = Mockito.spy(new QuickfixjConsumer(mockEndpoint, mockProcessor));
+        Mockito.doReturn(mockSession).when(consumer).getSession(mockSessionId);
+        Mockito.doReturn(true).when(mockSession).send(Mockito.isA(Message.class));
+
+        Mockito.when(mockExchange.getPattern()).thenReturn(ExchangePattern.InOut);
         Mockito.when(mockExchange.hasOut()).thenReturn(true);
         Mockito.when(mockExchange.getOut()).thenReturn(mockCamelOutMessage);
         Message outboundFixMessage = new Message();
         Mockito.when(mockCamelOutMessage.getBody(Message.class)).thenReturn(outboundFixMessage);
-        
-        QuickfixjConsumer consumer = Mockito.spy(new QuickfixjConsumer(mockEndpoint, mockProcessor));
-        Session mockSession = Mockito.spy(TestSupport.createSession(sessionID));
-        Mockito.doReturn(mockSession).when(consumer).getSession(MessageUtils.getReverseSessionID(inboundFixMessage));
-        Mockito.doReturn(true).when(mockSession).send(Mockito.isA(Message.class));
-        
+        Mockito.when(mockExchange.getIn()).thenReturn(mockCamelInMessage);
+        Mockito.when(mockCamelInMessage.getHeader("SessionID", SessionID.class)).thenReturn(mockSessionId);
+
         consumer.start();
-        Mockito.when(mockExchange.getPattern()).thenReturn(ExchangePattern.InOut);
-        
+
         consumer.onExchange(mockExchange);
         Mockito.verify(mockExchange, Mockito.never()).setException(Mockito.isA(Exception.class));
         Mockito.verify(mockSession).send(outboundFixMessage);