Ejemplo n.º 1
0
void LLMessageTemplateParserTestObject::test<6>()
// tests message parsing method on a simple message
{
    std::string message_skel(
        "{\n"
        "TestMessage Low 1 NotTrusted Zerocoded\n"
        "// comment \n"
        "  {\n"
        "TestBlock1      Single\n"
        "      {   Test1       U32 }\n"
        "  }\n"
        "  {\n"
        "      NeighborBlock       Multiple        4\n"
        "      {   Test0       U32 }\n"
        "      {   Test1       U32 }\n"
        "      {   Test2       U32 }\n"
        "  }\n"
        "}");
    LLTemplateTokenizer tokens(message_skel);
    LLMessageTemplate * message = LLTemplateParser::parseMessage(tokens);

    ensure("simple message parsed", message != 0);
    ensure_equals("name of message", std::string(message->mName), std::string("TestMessage"));
    ensure_equals("frequency is Low", message->mFrequency, MFT_LOW);
    ensure_equals("trust is untrusted", message->mTrust, MT_NOTRUST);
    ensure_equals("message number", message->mMessageNumber, (U32)((255 << 24) | (255 << 16) | 1));
    ensure_equals("message encoding is zerocoded", message->mEncoding, ME_ZEROCODED);
    ensure_equals("message deprecation is notdeprecated", message->mDeprecation, MD_NOTDEPRECATED);

    LLMessageBlock * block = message->getBlock(prehash("NonexistantBlock"));
    ensure("Nonexistant block does not exist", block == 0);

    delete message;
}