66import com .google .gson .*;
77
88public class MsgTest {
9+ static class Header {
10+ String BeginString ;
11+ String MsgType ;
12+ String MsgSeqNum ;
13+ String SenderCompID ;
14+ String TargetCompID ;
15+ String SendingTime ;
16+ }
17+
18+ static class Trailer {
19+ }
20+
921 static class NoMDEntries {
1022 String MDEntryType ;
1123 String MDEntryPx ;
@@ -15,33 +27,39 @@ static class NoMDEntries {
1527 }
1628
1729 static class MarketDataSnapshotFullRefresh {
18- String BeginString ;
19- String MsgType ;
20- String MsgSeqNum ;
21- String SenderCompID ;
22- String TargetCompID ;
23- String SendingTime ;
24- String SecurityIDSource ;
25- String SecurityID ;
26- String MDReqID ;
27- NoMDEntries [] NoMDEntries ;
30+ static class Body {
31+ String SecurityIDSource ;
32+ String SecurityID ;
33+ String MDReqID ;
34+ NoMDEntries [] NoMDEntries ;
35+ }
36+
37+ Header Header ;
38+ Body Body ;
39+ Trailer Trailer ;
2840 }
2941
3042 private final static String data = String .join ("\n " ,
3143 "{" ,
32- "\" BeginString\" : \" FIXT.1.1\" ," ,
33- "\" MsgType\" : \" W\" ," ,
34- "\" MsgSeqNum\" : \" 4567\" ," ,
35- "\" SenderCompID\" : \" SENDER\" ," ,
36- "\" TargetCompID\" : \" TARGET\" ," ,
37- "\" SendingTime\" : \" 20160802-21:14:38.717\" ," ,
38- "\" SecurityIDSource\" : \" 8\" ," ,
39- "\" SecurityID\" : \" ESU6\" ," ,
40- "\" MDReqID\" : \" 789\" ," ,
41- "\" NoMDEntries\" : [" ,
42- "{ \" MDEntryType\" : \" 0\" , \" MDEntryPx\" : \" 2179.75\" , \" MDEntrySize\" : \" 175\" , \" MDEntryDate\" : \" 20160812\" , \" MDEntryTime\" : \" 21:14:38.688\" }," ,
43- "{ \" MDEntryType\" : \" 1\" , \" MDEntryPx\" : \" 2180.25\" , \" MDEntrySize\" : \" 125\" , \" MDEntryDate\" : \" 20160812\" , \" MDEntryTime\" : \" 21:14:38.688\" }" ,
44- "]" ,
44+ "\" Header\" : {" ,
45+ "\" BeginString\" : \" FIXT.1.1\" ," ,
46+ "\" MsgType\" : \" W\" ," ,
47+ "\" MsgSeqNum\" : \" 4567\" ," ,
48+ "\" SenderCompID\" : \" SENDER\" ," ,
49+ "\" TargetCompID\" : \" TARGET\" ," ,
50+ "\" SendingTime\" : \" 20160802-21:14:38.717\" " ,
51+ "}," ,
52+ "\" Body\" : {" ,
53+ "\" SecurityIDSource\" : \" 8\" ," ,
54+ "\" SecurityID\" : \" ESU6\" ," ,
55+ "\" MDReqID\" : \" 789\" ," ,
56+ "\" NoMDEntries\" : [" ,
57+ "{ \" MDEntryType\" : \" 0\" , \" MDEntryPx\" : \" 2179.75\" , \" MDEntrySize\" : \" 175\" , \" MDEntryDate\" : \" 20160812\" , \" MDEntryTime\" : \" 21:14:38.688\" }," ,
58+ "{ \" MDEntryType\" : \" 1\" , \" MDEntryPx\" : \" 2180.25\" , \" MDEntrySize\" : \" 125\" , \" MDEntryDate\" : \" 20160812\" , \" MDEntryTime\" : \" 21:14:38.688\" }" ,
59+ "]" ,
60+ "}," ,
61+ "\" Trailer\" : {" ,
62+ "}" ,
4563 "}"
4664 );
4765
@@ -51,33 +69,33 @@ public void testJson() {
5169 MarketDataSnapshotFullRefresh msg = new Gson ().fromJson (data , MarketDataSnapshotFullRefresh .class );
5270
5371 // Then the header fields should be
54- assertEquals ("FIXT.1.1" , msg .BeginString );
55- assertEquals ("W" , msg .MsgType );
56- assertEquals ("4567" , msg .MsgSeqNum );
57- assertEquals ("SENDER" , msg .SenderCompID );
58- assertEquals ("TARGET" , msg .TargetCompID );
59- assertEquals ("20160802-21:14:38.717" , msg .SendingTime );
72+ assertEquals ("FIXT.1.1" , msg .Header . BeginString );
73+ assertEquals ("W" , msg .Header . MsgType );
74+ assertEquals ("4567" , msg .Header . MsgSeqNum );
75+ assertEquals ("SENDER" , msg .Header . SenderCompID );
76+ assertEquals ("TARGET" , msg .Header . TargetCompID );
77+ assertEquals ("20160802-21:14:38.717" , msg .Header . SendingTime );
6078
6179 // And the body fields should be
62- assertEquals ("8" , msg .SecurityIDSource );
63- assertEquals ("ESU6" , msg .SecurityID );
64- assertEquals ("789" , msg .MDReqID );
80+ assertEquals ("8" , msg .Body . SecurityIDSource );
81+ assertEquals ("ESU6" , msg .Body . SecurityID );
82+ assertEquals ("789" , msg .Body . MDReqID );
6583
6684 // And the NoMDEntries repeating group should contain two entries
67- assertEquals (2 , msg .NoMDEntries .length );
85+ assertEquals (2 , msg .Body . NoMDEntries .length );
6886
6987 // And the first entry should be
70- assertEquals ("0" , msg .NoMDEntries [0 ].MDEntryType );
71- assertEquals ("2179.75" , msg .NoMDEntries [0 ].MDEntryPx );
72- assertEquals ("175" , msg .NoMDEntries [0 ].MDEntrySize );
73- assertEquals ("20160812" , msg .NoMDEntries [0 ].MDEntryDate );
74- assertEquals ("21:14:38.688" , msg .NoMDEntries [0 ].MDEntryTime );
88+ assertEquals ("0" , msg .Body . NoMDEntries [0 ].MDEntryType );
89+ assertEquals ("2179.75" , msg .Body . NoMDEntries [0 ].MDEntryPx );
90+ assertEquals ("175" , msg .Body . NoMDEntries [0 ].MDEntrySize );
91+ assertEquals ("20160812" , msg .Body . NoMDEntries [0 ].MDEntryDate );
92+ assertEquals ("21:14:38.688" , msg .Body . NoMDEntries [0 ].MDEntryTime );
7593
7694 // And the second entry should be
77- assertEquals ("1" , msg .NoMDEntries [1 ].MDEntryType );
78- assertEquals ("2180.25" , msg .NoMDEntries [1 ].MDEntryPx );
79- assertEquals ("125" , msg .NoMDEntries [1 ].MDEntrySize );
80- assertEquals ("20160812" , msg .NoMDEntries [1 ].MDEntryDate );
81- assertEquals ("21:14:38.688" , msg .NoMDEntries [1 ].MDEntryTime );
95+ assertEquals ("1" , msg .Body . NoMDEntries [1 ].MDEntryType );
96+ assertEquals ("2180.25" , msg .Body . NoMDEntries [1 ].MDEntryPx );
97+ assertEquals ("125" , msg .Body . NoMDEntries [1 ].MDEntrySize );
98+ assertEquals ("20160812" , msg .Body . NoMDEntries [1 ].MDEntryDate );
99+ assertEquals ("21:14:38.688" , msg .Body . NoMDEntries [1 ].MDEntryTime );
82100 }
83101}
0 commit comments