Refactor MessageTest: remove unused tests and enhance message parsing validation
This commit is contained in:
@@ -13,6 +13,8 @@ class MessageTest : public ::testing::Test, public SharedRom {
|
|||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
GTEST_SKIP();
|
GTEST_SKIP();
|
||||||
#endif
|
#endif
|
||||||
|
EXPECT_OK(rom()->LoadFromFile("zelda3.sfc"));
|
||||||
|
dictionary_ = editor::BuildDictionaryEntries(rom());
|
||||||
}
|
}
|
||||||
void TearDown() override {}
|
void TearDown() override {}
|
||||||
|
|
||||||
@@ -20,36 +22,6 @@ class MessageTest : public ::testing::Test, public SharedRom {
|
|||||||
std::vector<editor::DictionaryEntry> dictionary_;
|
std::vector<editor::DictionaryEntry> 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) {
|
TEST_F(MessageTest, ParseSingleMessage_CommandParsing) {
|
||||||
std::vector<uint8_t> mock_data = {0x6A, 0x7F, 0x00};
|
std::vector<uint8_t> mock_data = {0x6A, 0x7F, 0x00};
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
@@ -64,17 +36,19 @@ TEST_F(MessageTest, ParseSingleMessage_CommandParsing) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(MessageTest, ParseSingleMessage_BasicAscii) {
|
TEST_F(MessageTest, ParseSingleMessage_BasicAscii) {
|
||||||
std::vector<uint8_t> mock_data = {0x41, 0x42, 0x43, 0x7F,
|
// A, B, C, terminator
|
||||||
0x00}; // A, B, C, terminator
|
std::vector<uint8_t> mock_data = {0x00, 0x01, 0x02, 0x7F, 0x00};
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
|
|
||||||
auto result = editor::ParseSingleMessage(mock_data, &pos);
|
auto result = editor::ParseSingleMessage(mock_data, &pos);
|
||||||
ASSERT_TRUE(result.ok());
|
ASSERT_TRUE(result.ok());
|
||||||
const auto message_data = result.value();
|
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
|
EXPECT_EQ(pos, 4); // consumed all 4 bytes
|
||||||
|
|
||||||
|
std::vector<editor::MessageData> message_data_vector = {message_data};
|
||||||
|
auto parsed = editor::ParseMessageData(message_data_vector, dictionary_);
|
||||||
|
|
||||||
|
EXPECT_THAT(parsed, ::testing::ElementsAre("ABC"));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace test
|
} // namespace test
|
||||||
|
|||||||
Reference in New Issue
Block a user