JayBeams  0.1
Another project to have fun coding.
ut_add_order_mpid_message.cpp
Go to the documentation of this file.
3 
4 #include <boost/test/unit_test.hpp>
5 
6 namespace {} // anonymous namespace
7 
8 /**
9  * @test Verify that the jb::itch5::add_order_mpid_message decoder works
10  * as expected.
11  */
12 BOOST_AUTO_TEST_CASE(decode_add_order_mpid_message) {
13  using namespace jb::itch5;
14  using namespace std::chrono;
15 
18 
19  auto x = decoder<true, add_order_mpid_message>::r(buf.second, buf.first, 0);
20  BOOST_CHECK_EQUAL(
21  x.header.message_type, add_order_mpid_message::message_type);
22  BOOST_CHECK_EQUAL(x.header.stock_locate, 0);
23  BOOST_CHECK_EQUAL(x.header.tracking_number, 1);
24  BOOST_CHECK_EQUAL(x.header.timestamp.ts.count(), expected_ts.count());
25  BOOST_CHECK_EQUAL(x.order_reference_number, 42ULL);
26  BOOST_CHECK_EQUAL(x.shares, 100);
27  BOOST_CHECK_EQUAL(x.stock, "HSART");
28  BOOST_CHECK_EQUAL(x.price, price4_t(1230500));
29  BOOST_CHECK_EQUAL(x.attribution, "LOOF");
30 
31  x = decoder<false, add_order_mpid_message>::r(buf.second, buf.first, 0);
32  BOOST_CHECK_EQUAL(
33  x.header.message_type, add_order_mpid_message::message_type);
34  BOOST_CHECK_EQUAL(x.header.stock_locate, 0);
35  BOOST_CHECK_EQUAL(x.header.tracking_number, 1);
36  BOOST_CHECK_EQUAL(x.header.timestamp.ts.count(), expected_ts.count());
37  BOOST_CHECK_EQUAL(x.order_reference_number, 42ULL);
38  BOOST_CHECK_EQUAL(x.shares, 100);
39  BOOST_CHECK_EQUAL(x.stock, "HSART");
40  BOOST_CHECK_EQUAL(x.price, price4_t(1230500));
41  BOOST_CHECK_EQUAL(x.attribution, "LOOF");
42 }
43 
44 /**
45  * @test Verify that jb::itch5::add_order_mpid_message iostream
46  * operator works as expected.
47  */
48 BOOST_AUTO_TEST_CASE(stream_add_order_mpid_message) {
49  using namespace std::chrono;
50  using namespace jb::itch5;
51 
53  auto tmp =
54  decoder<false, add_order_mpid_message>::r(buf.second, buf.first, 0);
55  std::ostringstream os;
56  os << tmp;
57  BOOST_CHECK_EQUAL(
58  os.str(), "message_type=F,stock_locate=0"
59  ",tracking_number=1,timestamp=113231.123456789"
60  ",order_reference_number=42"
61  ",buy_sell_indicator=B"
62  ",shares=100"
63  ",stock=HSART"
64  ",price=123.0500"
65  ",attribution=LOOF");
66 }
static T r(std::size_t size, void const *msg, std::size_t offset)
Read a single message or field.
Contains classes and functions to parse NASDAQ ITCH-5.0 messages, more information about ITCH-5...
std::pair< char const *, std::size_t > add_order_mpid()
Definition: data.cpp:47
std::chrono::nanoseconds expected_ts()
Return the expected timestamp for all the test messages.
Definition: data.cpp:19
BOOST_AUTO_TEST_CASE(decode_add_order_mpid_message)