| 110 | } |
| 111 | |
| 112 | void TestStructList(const char* msg, uint32_t msg_size) |
| 113 | { |
| 114 | // Load |
| 115 | dmStructDDF::Struct* message; |
| 116 | dmDDF::Result e = dmDDF::LoadMessage((void*) msg, msg_size, &dmStructDDF_Struct_DESCRIPTOR, (void**)&message); |
| 117 | ASSERT_EQ(dmDDF::RESULT_OK, e); |
| 118 | |
| 119 | dmStructDDF::Struct::FieldsEntry* values = FindEntry(message, "values"); |
| 120 | dmStructDDF::ListValue* list = values->m_Value->m_Kind.m_List; |
| 121 | |
| 122 | ASSERT_EQ(3, list->m_Values.m_Count); |
| 123 | ASSERT_NEAR(1.0, list->m_Values[0].m_Kind.m_Number, 0.001); |
| 124 | ASSERT_STREQ("two", list->m_Values[1].m_Kind.m_String); |
| 125 | ASSERT_FALSE(list->m_Values[2].m_Kind.m_Bool); |
| 126 | |
| 127 | // Save |
| 128 | std::string save_str; |
| 129 | e = DDFSaveToString(message, &dmStructDDF_Struct_DESCRIPTOR, save_str); |
| 130 | ASSERT_EQ(dmDDF::RESULT_OK, e); |
| 131 | |
| 132 | dmStructDDF::Struct* saved_message; |
| 133 | e = dmDDF::LoadMessage((void*) save_str.c_str(), save_str.size(), &dmStructDDF_Struct_DESCRIPTOR, (void**)&saved_message); |
| 134 | ASSERT_EQ(dmDDF::RESULT_OK, e); |
| 135 | |
| 136 | dmStructDDF::Struct::FieldsEntry* values2 = FindEntry(saved_message, "values"); |
| 137 | dmStructDDF::ListValue* list2 = values2->m_Value->m_Kind.m_List; |
| 138 | |
| 139 | ASSERT_EQ(3, list2->m_Values.m_Count); |
| 140 | ASSERT_NEAR(1.0, list2->m_Values[0].m_Kind.m_Number, 0.001); |
| 141 | ASSERT_STREQ("two", list2->m_Values[1].m_Kind.m_String); |
| 142 | ASSERT_FALSE(list2->m_Values[2].m_Kind.m_Bool); |
| 143 | |
| 144 | dmDDF::FreeMessage(saved_message); |
| 145 | dmDDF::FreeMessage(message); |
| 146 | } |
| 147 | |
| 148 | void TestStructJSON(const char* msg, uint32_t msg_size) |
| 149 | { |
no test coverage detected