diff --git a/test/test_ZmqReceiver.cpp b/test/test_ZmqReceiver.cpp index 35a10b2..ce1a518 100644 --- a/test/test_ZmqReceiver.cpp +++ b/test/test_ZmqReceiver.cpp @@ -1,6 +1,7 @@ #include "../src/ZmqReceiver.hpp" using namespace std; +namespace pt = boost::property_tree; TEST(ZmqReceiver, get_type_byte_size) { @@ -24,4 +25,38 @@ TEST(ZmqReceiver, HeaderDataType) ASSERT_TRUE(header_data_type.value_bytes_size == 8); ASSERT_TRUE(header_data_type.value_shape == 4); ASSERT_TRUE(header_data_type.endianness == "little"); +} + +TEST(ZmqReceiver, get_value_from_json) +{ + pt::ptree json_header; + + uint64_t frame_number = 1234567890; + json_header.add("frame_number", frame_number); + HeaderDataType header_data_type_scalar("uint64", 1); + + auto scalar_buffer = get_value_from_json(json_header, "frame_number", header_data_type_scalar); + auto scalar_value = reinterpret_cast(scalar_buffer.get()); + + ASSERT_TRUE(*scalar_value == frame_number); + + int32_t modules_number[] = {-345, 1234567, -2323456}; + pt::ptree modulus_number_child; + + for (int i=0; i<3; i++) { + pt::ptree value; + value.put("", modules_number[i]); + modulus_number_child.push_back(make_pair("", value)); + } + + json_header.add_child("modules_number", modulus_number_child); + + HeaderDataType header_data_type_array("int32", 3); + + auto array_buffer = get_value_from_json(json_header, "modules_number", header_data_type_array); + auto array_values = reinterpret_cast(array_buffer.get()); + + for (int i=0; i<3; i++) { + ASSERT_TRUE(array_values[i] == modules_number[i]); + } } \ No newline at end of file