Skip to content

Commit c46dc29

Browse files
committed
Split up MessageUtilsTest in base and core part.
1 parent f15468e commit c46dc29

File tree

2 files changed

+14
-243
lines changed

2 files changed

+14
-243
lines changed

quickfixj-base/src/test/java/quickfix/MessageUtilsTest.java

Lines changed: 7 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -19,34 +19,22 @@
1919

2020
package quickfix;
2121

22-
import org.junit.Test;
23-
24-
import quickfix.field.ApplVerID;
2522
import quickfix.field.BeginString;
26-
import quickfix.field.DefaultApplVerID;
27-
import quickfix.field.EmailThreadID;
28-
import quickfix.field.EmailType;
29-
import quickfix.field.EncryptMethod;
30-
import quickfix.field.HeartBtInt;
3123
import quickfix.field.MsgType;
3224
import quickfix.field.SenderCompID;
33-
import quickfix.field.Subject;
34-
import quickfix.field.TargetCompID;
35-
import quickfix.fix40.Logon;
36-
import quickfix.fix50.Email;
3725

38-
import static org.hamcrest.Matchers.instanceOf;
39-
import static org.hamcrest.Matchers.is;
40-
import static org.hamcrest.Matchers.notNullValue;
41-
import static org.hamcrest.MatcherAssert.assertThat;
4226
import static org.junit.Assert.assertEquals;
4327
import static org.junit.Assert.assertNull;
4428
import static org.junit.Assert.fail;
4529
import org.junit.Test;
46-
import static org.mockito.ArgumentMatchers.any;
47-
import static org.mockito.Mockito.mock;
48-
import static org.mockito.Mockito.when;
4930

31+
/**
32+
* NOTE: There are two MessageUtilsTests.
33+
* One in quickfixj-base, one in quickfixj-core, which each test
34+
* some functionality. This test excludes some test cases that cannot
35+
* be tested in this module due to classes that are generated in a
36+
* later step, e.g. MessageFactories.
37+
*/
5038
public class MessageUtilsTest {
5139

5240
@Test
@@ -58,37 +46,6 @@ public void testGetStringField() throws Exception {
5846
assertNull(messageString, MessageUtils.getStringField(messageString, SenderCompID.FIELD));
5947
}
6048

61-
@Test
62-
public void testSessionIdFromMessage() throws Exception {
63-
Message message = new Logon();
64-
message.getHeader().setString(SenderCompID.FIELD, "TW");
65-
message.getHeader().setString(TargetCompID.FIELD, "ISLD");
66-
SessionID sessionID = MessageUtils.getSessionID(message);
67-
assertEquals(sessionID.getBeginString(), "FIX.4.0");
68-
assertEquals("TW", sessionID.getSenderCompID());
69-
assertEquals("ISLD", sessionID.getTargetCompID());
70-
}
71-
72-
@Test
73-
public void testReverseSessionIdFromMessage() throws Exception {
74-
Message message = new Logon();
75-
message.getHeader().setString(SenderCompID.FIELD, "TW");
76-
message.getHeader().setString(TargetCompID.FIELD, "ISLD");
77-
SessionID sessionID = MessageUtils.getReverseSessionID(message);
78-
assertEquals(sessionID.getBeginString(), "FIX.4.0");
79-
assertEquals("ISLD", sessionID.getSenderCompID());
80-
assertEquals("TW", sessionID.getTargetCompID());
81-
}
82-
83-
@Test
84-
public void testReverseSessionIdFromMessageWithMissingFields() throws Exception {
85-
Message message = new Logon();
86-
SessionID sessionID = MessageUtils.getReverseSessionID(message);
87-
assertEquals(sessionID.getBeginString(), "FIX.4.0");
88-
assertEquals(sessionID.getSenderCompID(), SessionID.NOT_SET);
89-
assertEquals(sessionID.getTargetCompID(), SessionID.NOT_SET);
90-
}
91-
9249
@Test
9350
public void testSessionIdFromRawMessage() throws Exception {
9451
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\001" +
@@ -155,118 +112,4 @@ public void testGetStringFieldWithBadValue() throws Exception {
155112
assertNull(MessageUtils.getStringField(messageString, 10));
156113
}
157114

158-
@Test
159-
public void testParse() throws Exception {
160-
Session mockSession = mock(Session.class);
161-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
162-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
163-
when(mockSession.getMessageFactory()).thenReturn(new quickfix.fix40.MessageFactory());
164-
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\001" +
165-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
166-
167-
Message message = MessageSessionUtils.parse(mockSession, messageString);
168-
169-
assertThat(message, notNullValue());
170-
}
171-
172-
@Test
173-
public void testLegacyParse() throws Exception {
174-
String data = "8=FIX.4.4\0019=309\00135=8\00149=ASX\00156=CL1_FIX44\00134=4\001" +
175-
"52=20060324-01:05:58\00117=X-B-WOW-1494E9A0:58BD3F9D-1109\001150=D\001" +
176-
"39=0\00111=184271\00138=200\001198=1494E9A0:58BD3F9D\001526=4324\001" +
177-
"37=B-WOW-1494E9A0:58BD3F9D\00155=WOW\00154=1\001151=200\00114=0\00140=2\001" +
178-
"44=15\00159=1\0016=0\001453=3\001448=AAA35791\001447=D\001452=3\001448=8\001" +
179-
"447=D\001452=4\001448=FIX11\001447=D\001452=36\00160=20060320-03:34:29\00110=169\001";
180-
181-
Message message = MessageUtils.parse(new quickfix.fix40.MessageFactory(), DataDictionaryTest.getDictionary(), data);
182-
assertThat(message, notNullValue());
183-
}
184-
185-
@Test
186-
public void testParseFixt() throws Exception {
187-
Session mockSession = mock(Session.class);
188-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
189-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
190-
when(mockSession.getMessageFactory()).thenReturn(new quickfix.fix40.MessageFactory());
191-
192-
Email email = new Email(new EmailThreadID("THREAD_ID"), new EmailType(EmailType.NEW), new Subject("SUBJECT"));
193-
email.getHeader().setField(new ApplVerID(ApplVerID.FIX42));
194-
email.getHeader().setField(new SenderCompID("SENDER"));
195-
email.getHeader().setField(new TargetCompID("TARGET"));
196-
197-
Message message = MessageSessionUtils.parse(mockSession, email.toString());
198-
199-
assertThat(message, is(notNullValue()));
200-
assertThat(message, instanceOf(quickfix.fix40.Email.class));
201-
}
202-
203-
@Test
204-
public void testParseFixtLogon() throws Exception {
205-
Session mockSession = mock(Session.class);
206-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
207-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
208-
when(mockSession.getMessageFactory()).thenReturn(new DefaultMessageFactory());
209-
210-
quickfix.fixt11.Logon logon = new quickfix.fixt11.Logon(new EncryptMethod(EncryptMethod.NONE_OTHER), new HeartBtInt(30),
211-
new DefaultApplVerID(ApplVerID.FIX42));
212-
213-
Message message = MessageSessionUtils.parse(mockSession, logon.toString());
214-
215-
assertThat(message, is(notNullValue()));
216-
assertThat(message, instanceOf(quickfix.fixt11.Logon.class));
217-
}
218-
219-
@Test
220-
public void testParseFixtLogout() throws Exception {
221-
Session mockSession = mock(Session.class);
222-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
223-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
224-
when(mockSession.getMessageFactory()).thenReturn(new DefaultMessageFactory());
225-
226-
quickfix.fixt11.Logout logout = new quickfix.fixt11.Logout();
227-
228-
Message message = MessageSessionUtils.parse(mockSession, logout.toString());
229-
230-
assertThat(message, is(notNullValue()));
231-
assertThat(message, instanceOf(quickfix.fixt11.Logout.class));
232-
}
233-
234-
@Test
235-
public void testParseFix50() throws Exception {
236-
Session mockSession = mock(Session.class);
237-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
238-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
239-
when(mockSession.getMessageFactory()).thenReturn(new DefaultMessageFactory());
240-
241-
Email email = new Email(new EmailThreadID("THREAD_ID"), new EmailType(EmailType.NEW), new Subject("SUBJECT"));
242-
email.getHeader().setField(new ApplVerID(ApplVerID.FIX50));
243-
email.getHeader().setField(new SenderCompID("SENDER"));
244-
email.getHeader().setField(new TargetCompID("TARGET"));
245-
246-
Message message = MessageSessionUtils.parse(mockSession, email.toString());
247-
248-
assertThat(message, is(notNullValue()));
249-
assertThat(message, instanceOf(quickfix.fix50.Email.class));
250-
}
251-
252-
// QFJ-973
253-
@Test
254-
public void testParseMessageWithoutChecksumValidation() throws InvalidMessage {
255-
Session mockSession = mock(Session.class);
256-
when(mockSession.isValidateChecksum()).thenReturn(Boolean.FALSE);
257-
258-
DataDictionary dataDictionary = mock(DataDictionary.class);
259-
DataDictionaryProvider mockDataDictionaryProvider = mock(DataDictionaryProvider.class);
260-
when(mockDataDictionaryProvider.getSessionDataDictionary(any(String.class))).thenReturn(dataDictionary);
261-
when(mockSession.getDataDictionaryProvider()).thenReturn(mockDataDictionaryProvider);
262-
when(mockSession.getMessageFactory()).thenReturn(new quickfix.fix40.MessageFactory());
263-
264-
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\001" +
265-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=283\001";
266-
267-
Message message = MessageSessionUtils.parse(mockSession, messageString);
268-
269-
assertThat(message, notNullValue());
270-
}
271-
272115
}

quickfixj-core/src/test/java/quickfix/MessageUtilsTest.java

Lines changed: 7 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@
2020
package quickfix;
2121

2222
import quickfix.field.ApplVerID;
23-
import quickfix.field.BeginString;
2423
import quickfix.field.DefaultApplVerID;
2524
import quickfix.field.EmailThreadID;
2625
import quickfix.field.EmailType;
2726
import quickfix.field.EncryptMethod;
2827
import quickfix.field.HeartBtInt;
29-
import quickfix.field.MsgType;
3028
import quickfix.field.SenderCompID;
3129
import quickfix.field.Subject;
3230
import quickfix.field.TargetCompID;
@@ -38,24 +36,20 @@
3836
import static org.hamcrest.Matchers.notNullValue;
3937
import static org.hamcrest.MatcherAssert.assertThat;
4038
import static org.junit.Assert.assertEquals;
41-
import static org.junit.Assert.assertNull;
42-
import static org.junit.Assert.fail;
4339
import org.junit.Test;
4440
import static org.mockito.ArgumentMatchers.any;
4541
import static org.mockito.Mockito.mock;
4642
import static org.mockito.Mockito.when;
4743

44+
/**
45+
* NOTE: There are two MessageUtilsTests.
46+
* One in quickfixj-base, one in quickfixj-core, which each test
47+
* some functionality. This test covers some test cases that cannot
48+
* be tested in the quickfixj-base module due to classes that are
49+
* generated later in the comile process, e.g. MessageFactories.
50+
*/
4851
public class MessageUtilsTest {
4952

50-
@Test
51-
public void testGetStringField() throws Exception {
52-
String messageString = "8=FIX.4.2\0019=12\00135=X\001108=30\00110=049\001";
53-
assertEquals("wrong value", "FIX.4.2", MessageUtils.getStringField(messageString,
54-
BeginString.FIELD));
55-
assertEquals("wrong value", "X", MessageUtils.getStringField(messageString, MsgType.FIELD));
56-
assertNull(messageString, MessageUtils.getStringField(messageString, SenderCompID.FIELD));
57-
}
58-
5953
@Test
6054
public void testSessionIdFromMessage() throws Exception {
6155
Message message = new Logon();
@@ -87,72 +81,6 @@ public void testReverseSessionIdFromMessageWithMissingFields() throws Exception
8781
assertEquals(sessionID.getTargetCompID(), SessionID.NOT_SET);
8882
}
8983

90-
@Test
91-
public void testSessionIdFromRawMessage() throws Exception {
92-
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\001" +
93-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
94-
SessionID sessionID = MessageUtils.getSessionID(messageString);
95-
assertEquals(sessionID.getBeginString(), "FIX.4.0");
96-
assertEquals("TW", sessionID.getSenderCompID());
97-
assertEquals("ISLD", sessionID.getTargetCompID());
98-
}
99-
100-
@Test
101-
public void testReverseSessionIdFromRawMessage() throws Exception {
102-
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\00150=TWS\001" +
103-
"142=TWL\00152=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
104-
SessionID sessionID = MessageUtils.getReverseSessionID(messageString);
105-
assertEquals(sessionID.getBeginString(), "FIX.4.0");
106-
assertEquals("ISLD", sessionID.getSenderCompID());
107-
assertEquals("TW", sessionID.getTargetCompID());
108-
assertEquals("TWS", sessionID.getTargetSubID());
109-
assertEquals("TWL", sessionID.getTargetLocationID());
110-
}
111-
112-
@Test
113-
public void testMessageType() throws Exception {
114-
String messageString = "8=FIX.4.0\0019=56\00135=A\00134=1\00149=TW\001" +
115-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
116-
assertEquals("A", MessageUtils.getMessageType(messageString));
117-
}
118-
119-
@Test
120-
public void testMessageTypeError() throws Exception {
121-
String messageString = "8=FIX.4.0\0019=56\00134=1\00149=TW\001" +
122-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
123-
try {
124-
MessageUtils.getMessageType(messageString);
125-
fail("expected exception");
126-
} catch (InvalidMessage e) {
127-
// expected
128-
}
129-
}
130-
131-
@Test
132-
public void testMessageTypeError2() throws Exception {
133-
String messageString = "8=FIX.4.0\0019=56\00135=1";
134-
try {
135-
MessageUtils.getMessageType(messageString);
136-
fail("expected exception");
137-
} catch (InvalidMessage e) {
138-
// expected
139-
}
140-
}
141-
142-
@Test
143-
public void testGetNonexistentStringField() throws Exception {
144-
String messageString = "8=FIX.4.0\0019=56\00134=1\00149=TW\001" +
145-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223\001";
146-
assertNull(MessageUtils.getStringField(messageString, 35));
147-
}
148-
149-
@Test
150-
public void testGetStringFieldWithBadValue() throws Exception {
151-
String messageString = "8=FIX.4.0\0019=56\00134=1\00149=TW\001" +
152-
"52=20060118-16:34:19\00156=ISLD\00198=0\001108=2\00110=223";
153-
assertNull(MessageUtils.getStringField(messageString, 10));
154-
}
155-
15684
@Test
15785
public void testParse() throws Exception {
15886
Session mockSession = mock(Session.class);

0 commit comments

Comments
 (0)