| 832 | } |
| 833 | |
| 834 | TEST_F(connected_test, basic_message_header_roundtrip) { |
| 835 | Table table_in; |
| 836 | table_in.insert(TableEntry("void_key", TableValue())); |
| 837 | table_in.insert(TableEntry("bool_key", true)); |
| 838 | table_in.insert(TableEntry("uint8_key", uint8_t(8))); |
| 839 | table_in.insert(TableEntry("int8_key", int8_t(8))); |
| 840 | table_in.insert(TableEntry("uint16_key", uint16_t(16))); |
| 841 | table_in.insert(TableEntry("int16_key", int16_t(16))); |
| 842 | table_in.insert(TableEntry("uint32_key", uint32_t(32))); |
| 843 | table_in.insert(TableEntry("int32_key", int32_t(32))); |
| 844 | table_in.insert(TableEntry("timestamp_key", TableValue::Timestamp(64))); |
| 845 | table_in.insert(TableEntry("int64_key", int64_t(64))); |
| 846 | table_in.insert(TableEntry("float_key", float(1.5))); |
| 847 | table_in.insert(TableEntry("double_key", double(2.25))); |
| 848 | table_in.insert(TableEntry("string_key", "A string!")); |
| 849 | |
| 850 | std::vector<TableValue> array_in; |
| 851 | array_in.push_back(TableValue(false)); |
| 852 | array_in.push_back(TableValue(int32_t(10))); |
| 853 | array_in.push_back(TableValue(std::string("Another string"))); |
| 854 | |
| 855 | table_in.insert(TableEntry("array_key", array_in)); |
| 856 | |
| 857 | Table table_inner; |
| 858 | table_inner.insert(TableEntry("inner_string", "An inner table")); |
| 859 | table_inner.insert(TableEntry("inner array", array_in)); |
| 860 | |
| 861 | table_in.insert(TableEntry("table_key", table_inner)); |
| 862 | |
| 863 | std::string queue = channel->DeclareQueue(""); |
| 864 | std::string tag = channel->BasicConsume(queue, ""); |
| 865 | |
| 866 | BasicMessage::ptr_t message_in = BasicMessage::Create("Body"); |
| 867 | message_in->HeaderTable(table_in); |
| 868 | |
| 869 | channel->BasicPublish("", queue, message_in); |
| 870 | |
| 871 | Envelope::ptr_t envelope = channel->BasicConsumeMessage(tag); |
| 872 | BasicMessage::ptr_t message_out = envelope->Message(); |
| 873 | Table table_out = message_out->HeaderTable(); |
| 874 | |
| 875 | EXPECT_EQ(table_in.size(), table_out.size()); |
| 876 | EXPECT_TRUE(std::equal(table_in.begin(), table_in.end(), table_out.begin())); |
| 877 | } |
| 878 | |
| 879 | TEST_F(connected_test, basic_message_empty_table_roundtrip) { |
| 880 | std::string queue = channel->DeclareQueue(""); |
nothing calls this directly
no test coverage detected