mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-20 17:52:35 +00:00
* Serializer bugfix * Remove duplicate test * fix tests * fix float precision issues --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
43 lines
1.5 KiB
C++
43 lines
1.5 KiB
C++
#include "../test_helpers.h"
|
|
|
|
// Test TEXT_MESSAGE_APP port
|
|
void test_text_message_serialization()
|
|
{
|
|
const char *test_text = "Hello Meshtastic!";
|
|
meshtastic_MeshPacket packet =
|
|
create_test_packet(meshtastic_PortNum_TEXT_MESSAGE_APP, (const uint8_t *)test_text, strlen(test_text));
|
|
|
|
std::string json = MeshPacketSerializer::JsonSerialize(&packet, false);
|
|
TEST_ASSERT_TRUE(json.length() > 0);
|
|
|
|
JSONValue *root = JSON::Parse(json.c_str());
|
|
TEST_ASSERT_NOT_NULL(root);
|
|
TEST_ASSERT_TRUE(root->IsObject());
|
|
|
|
JSONObject jsonObj = root->AsObject();
|
|
|
|
// Check basic packet fields
|
|
TEST_ASSERT_TRUE(jsonObj.find("from") != jsonObj.end());
|
|
TEST_ASSERT_EQUAL(0x11223344, (uint32_t)jsonObj["from"]->AsNumber());
|
|
|
|
TEST_ASSERT_TRUE(jsonObj.find("to") != jsonObj.end());
|
|
TEST_ASSERT_EQUAL(0x55667788, (uint32_t)jsonObj["to"]->AsNumber());
|
|
|
|
TEST_ASSERT_TRUE(jsonObj.find("id") != jsonObj.end());
|
|
TEST_ASSERT_EQUAL(0x9999, (uint32_t)jsonObj["id"]->AsNumber());
|
|
|
|
// Check message type
|
|
TEST_ASSERT_TRUE(jsonObj.find("type") != jsonObj.end());
|
|
TEST_ASSERT_EQUAL_STRING("text", jsonObj["type"]->AsString().c_str());
|
|
|
|
// Check payload
|
|
TEST_ASSERT_TRUE(jsonObj.find("payload") != jsonObj.end());
|
|
TEST_ASSERT_TRUE(jsonObj["payload"]->IsObject());
|
|
|
|
JSONObject payload = jsonObj["payload"]->AsObject();
|
|
TEST_ASSERT_TRUE(payload.find("text") != payload.end());
|
|
TEST_ASSERT_EQUAL_STRING("Hello Meshtastic!", payload["text"]->AsString().c_str());
|
|
|
|
delete root;
|
|
}
|