diff --git a/test/zelda3/message_test.cc b/test/zelda3/message_test.cc index 025d2d9c..f536b5f7 100644 --- a/test/zelda3/message_test.cc +++ b/test/zelda3/message_test.cc @@ -13,6 +13,8 @@ class MessageTest : public ::testing::Test, public SharedRom { #if defined(__linux__) GTEST_SKIP(); #endif + EXPECT_OK(rom()->LoadFromFile("zelda3.sfc")); + dictionary_ = editor::BuildDictionaryEntries(rom()); } void TearDown() override {} @@ -20,36 +22,6 @@ class MessageTest : public ::testing::Test, public SharedRom { std::vector dictionary_; }; -TEST_F(MessageTest, LoadMessagesFromRomOk) { - EXPECT_OK(rom()->LoadFromFile("zelda3.sfc")); - EXPECT_OK(message_editor_.Initialize()); -} - -/** - * @test Verify that a single message can be loaded from the ROM. - * - * @details The message is loaded from the ROM and the message is parsed. - * - * Message #1 at address 0x0E000B - RawString: - [S:00][3][][:75][:44][CH2I] - - Parsed: - [S:##]A - [3]give - [2]give >[CH2I] - - Message ID: 2 - Raw: [S:00][3][][:75][:44][CH2I] - Parsed: [S:00][3][][:75][:44][CH2I] - Raw Bytes: 7A 00 76 88 8A 75 88 44 68 - Parsed Bytes: 7A 00 76 88 8A 75 88 44 68 - - */ -TEST_F(MessageTest, VerifySingleMessageFromRomOk) { - // TODO - Implement this test -} - TEST_F(MessageTest, ParseSingleMessage_CommandParsing) { std::vector mock_data = {0x6A, 0x7F, 0x00}; int pos = 0; @@ -64,17 +36,19 @@ TEST_F(MessageTest, ParseSingleMessage_CommandParsing) { } TEST_F(MessageTest, ParseSingleMessage_BasicAscii) { - std::vector mock_data = {0x41, 0x42, 0x43, 0x7F, - 0x00}; // A, B, C, terminator + // A, B, C, terminator + std::vector mock_data = {0x00, 0x01, 0x02, 0x7F, 0x00}; int pos = 0; auto result = editor::ParseSingleMessage(mock_data, &pos); ASSERT_TRUE(result.ok()); const auto message_data = result.value(); - - EXPECT_EQ(message_data.RawString, "ABC"); - EXPECT_EQ(message_data.ContentsParsed, "ABC"); EXPECT_EQ(pos, 4); // consumed all 4 bytes + + std::vector message_data_vector = {message_data}; + auto parsed = editor::ParseMessageData(message_data_vector, dictionary_); + + EXPECT_THAT(parsed, ::testing::ElementsAre("ABC")); } } // namespace test