21 #define BOOST_TEST_MODULE isimud_tests
22 #include <boost/test/included/unit_test.hpp>
24 #include <boost/mpl/list.hpp>
26 #include "../exchanges/MIT/BIT/messages.hpp"
27 #include "../exchanges/MIT/JSE/messages.hpp"
28 #include "../exchanges/MIT/LSE/messages.hpp"
29 #include "../exchanges/MIT/OSLO/messages.hpp"
30 #include "../exchanges/MIT/TRQ/messages.hpp"
32 using namespace libisimud;
42 BOOST_AUTO_TEST_SUITE(exchange_gateways)
44 BOOST_AUTO_TEST_CASE_TEMPLATE(print_details, msg, msg_types) {
46 BOOST_CHECK_NO_THROW(msg::to_stream(ss));
47 BOOST_CHECK(!ss.str().empty());
50 BOOST_AUTO_TEST_CASE_TEMPLATE(ctor, msg, msg_types) {
51 const typename msg::ClientOrderID_t origClientOrderID{
"0000000000000000001"};
52 const typename msg::ClientOrderID_t clientOrderID{
"0000000000000000001"};
53 const typename msg::SecurityID_t instID(133215);
54 const typename msg::Price_t price(1);
56 typename msg::LogonRequest logon(
typename msg::LogonRequest::logon_args_t::UserName_t{
"user"},
typename msg::LogonRequest::logon_args_t::Password_t{
"fubar"},
typename msg::LogonRequest::logon_args_t::Password_t{
"snafu"});
57 BOOST_CHECK_EQUAL(logon.start_of_message, 2);
58 BOOST_CHECK_EQUAL(logon.length(),
sizeof(
typename msg::LogonRequest));
59 BOOST_CHECK_EQUAL(logon.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::LogonRequest));
60 BOOST_CHECK_EQUAL(logon.messageVersion, 1);
61 BOOST_CHECK(logon.is_valid());
62 typename msg::LogonReply logonReply;
63 BOOST_CHECK_EQUAL(logonReply.start_of_message, 2);
64 BOOST_CHECK_EQUAL(logonReply.length(),
sizeof(
typename msg::LogonReply));
65 BOOST_CHECK_EQUAL(logonReply.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::LogonReply));
66 BOOST_CHECK(logonReply.is_valid());
67 typename msg::LogoutRequest logout(exchanges::MIT::common::Reason_t{
'U',
's',
'e',
'r',
' ',
'l',
'o',
'g',
'o',
'u',
't',
' ',
'r',
'e',
'c',
'e',
'i',
'v',
'e',
'd'});
68 BOOST_CHECK_EQUAL(logout.start_of_message, 2);
69 BOOST_CHECK_EQUAL(logout.length(),
sizeof(
typename msg::Logout));
70 BOOST_CHECK_EQUAL(logout.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::LogoutRequest));
71 BOOST_CHECK(logout.is_valid());
72 typename msg::ClientHeartbeat client_heartbeat;
73 BOOST_CHECK_EQUAL(client_heartbeat.start_of_message, 2);
74 BOOST_CHECK_EQUAL(client_heartbeat.length(),
sizeof(
typename msg::ClientHeartbeat));
75 BOOST_CHECK_EQUAL(client_heartbeat.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::Heartbeat));
76 BOOST_CHECK(client_heartbeat.is_valid());
77 typename msg::ServerHeartbeat server_heartbeat;
78 BOOST_CHECK_EQUAL(server_heartbeat.start_of_message, 2);
79 BOOST_CHECK_EQUAL(server_heartbeat.length(),
sizeof(
typename msg::ServerHeartbeat));
80 BOOST_CHECK_EQUAL(server_heartbeat.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::Heartbeat));
81 BOOST_CHECK(server_heartbeat.is_valid());
83 BOOST_CHECK_EQUAL(missedMessageRequest.start_of_message, 2);
84 BOOST_CHECK_EQUAL(missedMessageRequest.length(),
sizeof(
typename msg::MissedMessageRequest));
85 BOOST_CHECK_EQUAL(missedMessageRequest.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::MissedMessageRequest));
86 BOOST_CHECK(missedMessageRequest.is_valid());
87 typename msg::MissedMessageRequestAck missedMessageRequestAck;
88 BOOST_CHECK_EQUAL(missedMessageRequestAck.start_of_message, 2);
89 BOOST_CHECK_EQUAL(missedMessageRequestAck.length(),
sizeof(
typename msg::MissedMessageRequestAck));
90 BOOST_CHECK_EQUAL(missedMessageRequestAck.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::MissedMessageRequestAck));
91 BOOST_CHECK(missedMessageRequestAck.is_valid());
92 typename msg::MissedMessageReport missedMessageReport;
93 BOOST_CHECK_EQUAL(missedMessageReport.start_of_message, 2);
94 BOOST_CHECK_EQUAL(missedMessageReport.length(),
sizeof(
typename msg::MissedMessageReport));
95 BOOST_CHECK_EQUAL(missedMessageReport.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::MissedMessageReport));
96 BOOST_CHECK(missedMessageReport.is_valid());
97 typename msg::Reject reject;
98 BOOST_CHECK_EQUAL(reject.start_of_message, 2);
99 BOOST_CHECK_EQUAL(reject.length(),
sizeof(
typename msg::Reject));
100 BOOST_CHECK_EQUAL(reject.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::Reject));
101 BOOST_CHECK(reject.is_valid());
102 typename msg::SystemStatus systemStatus;
103 BOOST_CHECK_EQUAL(systemStatus.start_of_message, 2);
104 BOOST_CHECK_EQUAL(systemStatus.length(),
sizeof(
typename msg::SystemStatus));
105 BOOST_CHECK_EQUAL(systemStatus.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::AdminMsgType::SystemStatus));
106 BOOST_CHECK(systemStatus.is_valid());
108 BOOST_CHECK_EQUAL(newOrder.start_of_message, 2);
109 BOOST_CHECK_EQUAL(newOrder.length(),
sizeof(
typename msg::NewOrder_t));
110 BOOST_CHECK_EQUAL(newOrder.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ClientMsgType::NewOrder));
111 BOOST_CHECK(newOrder.is_valid());
113 BOOST_CHECK_EQUAL(orderCancelReplaceRequest.start_of_message, 2);
114 BOOST_CHECK_EQUAL(orderCancelReplaceRequest.length(),
sizeof(
typename msg::OrderCancelReplaceRequest));
115 BOOST_CHECK_EQUAL(orderCancelReplaceRequest.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ClientMsgType::OrderCancelReplaceRequest));
116 BOOST_CHECK(orderCancelReplaceRequest.is_valid());
117 typename msg::OrderCancelRequest orderCancelRequest(clientOrderID, clientOrderID, instID, exchanges
::MIT::common::Side::Buy);
118 BOOST_CHECK_EQUAL(orderCancelRequest.start_of_message, 2);
119 BOOST_CHECK_EQUAL(orderCancelRequest.length(),
sizeof(
typename msg::OrderCancelRequest));
120 BOOST_CHECK_EQUAL(orderCancelRequest.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ClientMsgType::OrderCancelRequest));
121 BOOST_CHECK(orderCancelRequest.is_valid());
122 typename msg::OrderMassCancelRequest orderMassCancelRequest(instID);
123 BOOST_CHECK_EQUAL(orderMassCancelRequest.start_of_message, 2);
124 BOOST_CHECK_EQUAL(orderMassCancelRequest.length(),
sizeof(
typename msg::OrderMassCancelRequest));
125 BOOST_CHECK_EQUAL(orderMassCancelRequest.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ClientMsgType::OrderMassCancelRequest));
126 BOOST_CHECK(orderMassCancelRequest.is_valid());
127 typename msg::ExecutionReport executionReport;
128 BOOST_CHECK_EQUAL(executionReport.start_of_message, 2);
129 BOOST_CHECK_EQUAL(executionReport.length(),
sizeof(
typename msg::ExecutionReport));
130 BOOST_CHECK_EQUAL(executionReport.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ServerMsgType::ExecutionReport));
131 BOOST_CHECK(executionReport.is_valid());
132 typename msg::OrderCancelReject orderCancelReject;
133 BOOST_CHECK_EQUAL(orderCancelReject.start_of_message, 2);
134 BOOST_CHECK_EQUAL(orderCancelReject.length(),
sizeof(
typename msg::OrderCancelReject));
135 BOOST_CHECK_EQUAL(orderCancelReject.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ServerMsgType::OrderCancelReject));
136 BOOST_CHECK(orderCancelReject.is_valid());
137 typename msg::OrderMassCancelReport orderMassCancelReport;
138 BOOST_CHECK_EQUAL(orderMassCancelReport.start_of_message, 2);
139 BOOST_CHECK_EQUAL(orderMassCancelReport.length(),
sizeof(
typename msg::OrderMassCancelReport));
140 BOOST_CHECK_EQUAL(orderMassCancelReport.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ServerMsgType::OrderMassCancelReport));
141 BOOST_CHECK(orderMassCancelReport.is_valid());
142 typename msg::BusinessReject businessReject;
143 BOOST_CHECK_EQUAL(businessReject.start_of_message, 2);
144 BOOST_CHECK_EQUAL(businessReject.length(),
sizeof(
typename msg::BusinessReject));
145 BOOST_CHECK_EQUAL(businessReject.type(),
static_cast<exchanges::MIT::common::MsgType_t>(exchanges::MIT::common::ServerMsgType::BusinessMessageReject));
146 BOOST_CHECK(businessReject.is_valid());
149 BOOST_AUTO_TEST_SUITE_END()