diff --git a/test/asm_test.cc b/test/asm_test.cc index cff67106..6ce8cfcc 100644 --- a/test/asm_test.cc +++ b/test/asm_test.cc @@ -24,14 +24,34 @@ using yaze::app::snes_asm::Script; using ::testing::_; using ::testing::ElementsAreArray; +using ::testing::Eq; using ::testing::Return; -using ::testing::TypedEq; class MockScript : public Script { public: MOCK_METHOD(absl::Status, ApplyPatchToROM, (ROM & rom)); + MOCK_METHOD(absl::Status, GenerateMosaicChangeAssembly, + (ROM & rom, char mosaic_tiles[yaze::app::core::kNumOverworldMaps], + int routine_offset, int hook_offset)); }; +TEST(ASMTest, ApplyMosaicChangePatchOk) { + ROM rom; + MockScript script; + char mosaic_tiles[yaze::app::core::kNumOverworldMaps]; + + EXPECT_CALL(script, GenerateMosaicChangeAssembly(_, Eq(mosaic_tiles), + Eq(0x1301D0 + 0x138000), 0)) + .WillOnce(Return(absl::OkStatus())); + + EXPECT_CALL(script, ApplyPatchToROM(_)).WillOnce(Return(absl::OkStatus())); + + EXPECT_THAT(script.GenerateMosaicChangeAssembly(rom, mosaic_tiles, + 0x1301D0 + 0x138000, 0), + absl::OkStatus()); + EXPECT_THAT(script.ApplyPatchToROM(rom), absl::OkStatus()); +} + TEST(ASMTest, NoPatchLoadedError) { ROM rom; MockScript script; @@ -42,7 +62,5 @@ TEST(ASMTest, NoPatchLoadedError) { absl::InvalidArgumentError("No patch loaded!")); } -TEST(ASMTest, ApplyPatchOk) {} - } // namespace asm_test } // namespace yaze_test \ No newline at end of file