package org.f1x.v1.state; import org.f1x.api.session.SessionState; import org.f1x.v1.InvalidFixMessageException; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.io.IOException; public abstract class SessionStateTest { protected SessionState sessionState; @Before public void init() throws Exception { sessionState = createSessionState(); } protected abstract SessionState createSessionState() throws Exception; @Test public void testLastLogonTimestamp() { Assert.assertEquals(-1, sessionState.getLastConnectionTimestamp()); for (int lastLogonTimestamp = 1; lastLogonTimestamp < 2000; lastLogonTimestamp++) { sessionState.setLastConnectionTimestamp(lastLogonTimestamp); Assert.assertEquals(lastLogonTimestamp, sessionState.getLastConnectionTimestamp()); } } @Test public void testNextSenderSeqNum() { Assert.assertEquals(1, sessionState.getNextSenderSeqNum()); for (int nextSenderSeqNum = 1; nextSenderSeqNum < 2000; nextSenderSeqNum++) { Assert.assertEquals(nextSenderSeqNum, sessionState.getNextSenderSeqNum()); Assert.assertEquals(nextSenderSeqNum, sessionState.consumeNextSenderSeqNum()); } for (int nextSenderSeqNum = 1; nextSenderSeqNum < 2000; nextSenderSeqNum++) { sessionState.setNextSenderSeqNum(nextSenderSeqNum); Assert.assertEquals(nextSenderSeqNum, sessionState.getNextSenderSeqNum()); } } @Test public void testNextTargetSeqNum() throws InvalidFixMessageException { Assert.assertEquals(1, sessionState.getNextTargetSeqNum()); for (int nextTargetSeqNum = 1; nextTargetSeqNum < 2000; nextTargetSeqNum++) { Assert.assertEquals(nextTargetSeqNum, sessionState.getNextTargetSeqNum()); Assert.assertEquals(nextTargetSeqNum, sessionState.consumeNextTargetSeqNum()); } for (int nextTargetSeqNum = 1; nextTargetSeqNum < 2000; nextTargetSeqNum++) { sessionState.setNextTargetSeqNum(nextTargetSeqNum); Assert.assertEquals(nextTargetSeqNum, sessionState.getNextTargetSeqNum()); } for (int nextTargetSeqNum = 1; nextTargetSeqNum < 2000; nextTargetSeqNum++) { sessionState.setNextTargetSeqNum(nextTargetSeqNum); Assert.assertEquals(nextTargetSeqNum, sessionState.getNextTargetSeqNum()); } } @Test public void testLastReceivedMessageTimestamp() { Assert.assertEquals(-1, sessionState.getLastReceivedMessageTimestamp()); for (int value = 1; value < 2000; value++) { sessionState.setLastReceivedMessageTimestamp(value); Assert.assertEquals(value, sessionState.getLastReceivedMessageTimestamp()); } } @Test public void testLastSentMessageTimestamp() { Assert.assertEquals(-1, sessionState.getLastSentMessageTimestamp()); for (int value = 1; value < 2000; value++) { sessionState.setLastSentMessageTimestamp(value); Assert.assertEquals(value, sessionState.getLastSentMessageTimestamp()); } } @Test public void testAllInOne() throws InvalidFixMessageException { testLastLogonTimestamp(); testNextSenderSeqNum(); testNextTargetSeqNum(); testLastReceivedMessageTimestamp(); testLastSentMessageTimestamp(); } @After public void destroy() throws IOException { sessionState = null; } }