1919
2020package quickfix .mina .acceptor ;
2121
22- import junit .framework .TestCase ;
2322import org .quickfixj .QFJException ;
2423import quickfix .Application ;
2524import quickfix .ConfigError ;
4039import java .util .ArrayList ;
4140import java .util .HashMap ;
4241import java .util .List ;
42+ import static org .junit .Assert .assertEquals ;
43+ import static org .junit .Assert .assertFalse ;
44+ import static org .junit .Assert .assertNotNull ;
45+ import static org .junit .Assert .assertTrue ;
46+ import static org .junit .Assert .fail ;
47+ import org .junit .Before ;
48+ import org .junit .Rule ;
49+ import org .junit .Test ;
50+ import org .junit .rules .TemporaryFolder ;
51+ import quickfix .FileStoreFactory ;
52+ import quickfix .Message ;
53+ import quickfix .fix42 .NewOrderSingle ;
4354
4455import static quickfix .mina .acceptor .DynamicAcceptorSessionProvider .TemplateMapping ;
4556import static quickfix .mina .acceptor .DynamicAcceptorSessionProvider .WILDCARD ;
4657
47- public class DynamicAcceptorSessionProviderTest extends TestCase {
58+ public class DynamicAcceptorSessionProviderTest {
4859 private DynamicAcceptorSessionProvider provider ;
4960 private SessionSettings settings ;
5061 private List <TemplateMapping > templateMappings ;
5162 private Application application ;
5263 private MessageStoreFactory messageStoreFactory ;
5364 private LogFactory logFactory ;
5465 private MessageFactory messageFactory ;
66+ @ Rule
67+ public TemporaryFolder tempFolder = new TemporaryFolder ();
5568
56- @ Override
57- protected void setUp () throws Exception {
69+ @ Before
70+ public void setUp () throws Exception {
5871 settings = new SessionSettings ();
5972 templateMappings = new ArrayList <>();
6073 application = new UnitTestApplication ();
@@ -79,6 +92,7 @@ protected void setUp() throws Exception {
7992 messageStoreFactory , logFactory , messageFactory );
8093 }
8194
95+ @ Test
8296 public void testSessionCreation () throws Exception {
8397
8498 try (Session session1 = provider .getSession (new SessionID ("FIX.4.2" , "SENDER" , "SENDERSUB" ,
@@ -124,6 +138,7 @@ private void setUpSettings(SessionID templateID, String key, String value) {
124138 settings .setString (templateID , key , value );
125139 }
126140
141+ @ Test
127142 public void testSessionTemplateNotFound () throws Exception {
128143 try {
129144 provider .getSession (new SessionID ("FIX.4.3" , "S" , "T" ), null );
@@ -133,10 +148,12 @@ public void testSessionTemplateNotFound() throws Exception {
133148 }
134149 }
135150
151+ @ Test
136152 public void testToString () throws Exception {
137153 templateMappings .toString (); // be sure there are no NPEs, etc.
138154 }
139-
155+
156+ @ Test
140157 public void testSimpleConstructor () throws Exception {
141158 provider = new DynamicAcceptorSessionProvider (settings , new SessionID ("FIX.4.2" , "ANY" ,
142159 "ANY" ), application , messageStoreFactory , logFactory , messageFactory );
@@ -149,6 +166,7 @@ public void testSimpleConstructor() throws Exception {
149166 /**
150167 * Verify that if a new session comes in it gets added to the list in session connector
151168 */
169+ @ Test
152170 public void testDynamicSessionIsAddedToSessionConnector () throws Exception {
153171 MySessionConnector connector = new MySessionConnector (settings , null );
154172
@@ -168,6 +186,44 @@ public void testDynamicSessionIsAddedToSessionConnector() throws Exception {
168186 session2 .close ();
169187 }
170188
189+ @ Test
190+ public void testDynamicSessionIsAddedToSessionConnectorAndFileStoreIsKept () throws Exception {
191+ SessionID id = new SessionID ("FIX.4.4" , "SENDER" , "TARGET" );
192+ SessionID templateId = new SessionID ("FIX.4.4" , "ANY" , "ANY" );
193+ SessionSettings ownSettings = new SessionSettings ();
194+ ownSettings .setString (id , "FileStorePath" , tempFolder .getRoot ().getAbsolutePath ());
195+ ownSettings .setString (templateId , "ConnectionType" , "acceptor" );
196+ ownSettings .setString (templateId , "StartTime" , "00:00:00" );
197+ ownSettings .setString (templateId , "EndTime" , "00:00:00" );
198+
199+ templateMappings .clear (); // only use own template
200+ templateMappings .add (new TemplateMapping (new SessionID ("FIX.4.4" , WILDCARD , WILDCARD ,
201+ WILDCARD , WILDCARD , WILDCARD , WILDCARD , WILDCARD ), templateId ));
202+
203+ MessageStoreFactory ownMessageStoreFactory = new FileStoreFactory (ownSettings );
204+ provider = new DynamicAcceptorSessionProvider (ownSettings , templateMappings , application ,
205+ ownMessageStoreFactory , logFactory , messageFactory );
206+
207+ MySessionConnector connector = new MySessionConnector (ownSettings , null );
208+ Session session2 = provider .getSession (id , connector );
209+ assertEquals (1 , connector .sessions .size ());
210+
211+ assertEquals (1 , session2 .getStore ().getNextSenderMsgSeqNum () );
212+ Message message = new NewOrderSingle ();
213+ session2 .send (message );
214+ assertEquals (2 , session2 .getStore ().getNextSenderMsgSeqNum () );
215+ session2 .close ();
216+
217+ session2 = provider .getSession (id , connector );
218+ assertEquals (1 , connector .sessions .size ());
219+
220+ assertEquals (2 , session2 .getStore ().getNextSenderMsgSeqNum () );
221+ message = new NewOrderSingle ();
222+ session2 .send (message );
223+ assertEquals (3 , session2 .getStore ().getNextSenderMsgSeqNum () );
224+ session2 .close ();
225+ }
226+
171227 private static class MySessionConnector extends SessionConnector {
172228 private final HashMap <SessionID , Session > sessions = new HashMap <>();
173229
0 commit comments