add z3ed_test

This commit is contained in:
scawful
2023-08-18 17:19:07 -04:00
parent baf7547fff
commit 905db2d57b
3 changed files with 126 additions and 6 deletions

View File

@@ -11,6 +11,7 @@
#include <vector>
#include "absl/status/status.h"
#include "absl/strings/str_cat.h"
#include "app/core/common.h"
#include "app/core/constants.h"
#include "app/rom.h"
@@ -146,12 +147,43 @@ class Compress : public CommandHandler {
}
};
// Decompress Graphics
// Decompress (Export) Graphics
//
// -e <rom_file> <bin_file> --mode=<optional:mode>
//
// mode:
class Decompress : public CommandHandler {
public:
absl::Status handle(std::string_view arg) override {
RETURN_IF_ERROR(rom_.LoadFromFile(arg, true))
RETURN_IF_ERROR(rom_.LoadAllGraphicsData())
auto args_vec = ParseArguments(arg);
Color::Modifier underline(Color::FG_UNDERLINE);
Color::Modifier reset(Color::FG_RESET);
std::cout << "Please specify the tilesheets you want to export\n";
std::cout << "You can input an individual sheet, a range X-Y, or comma "
"separate values.\n\n";
std::cout << underline << "Tilesheets\n" << reset;
std::cout << "0-112 -> compressed 3bpp bgr \n";
std::cout << "113-114 -> compressed 2bpp\n";
std::cout << "115-126 -> uncompressed 3bpp sprites\n";
std::cout << "127-217 -> compressed 3bpp sprites\n";
std::cout << "218-222 -> compressed 2bpp\n";
std::cout << "Enter tilesheets: ";
std::string sheet_input;
std::cin >> sheet_input;
// Batch Mode
// if (args_vec.size() == 1) {
// auto rom_filename = args_vec[1];
// RETURN_IF_ERROR(rom_.LoadFromFile(arg, true))
// RETURN_IF_ERROR(rom_.LoadAllGraphicsData())
// for (auto& graphic_sheet : rom_.GetGraphicsBin()) {
// const auto filename =
// absl::StrCat(rom_.filename(), graphic_sheet.first);
// graphic_sheet.second.SaveSurfaceToFile(filename);
// }
// }
std::cout << "Decompress selected with argument: " << arg << std::endl;
return absl::OkStatus();
}
@@ -191,9 +223,9 @@ struct Commands {
{"-c", std::make_shared<CreatePatch>()},
{"-o", std::make_shared<Open>()},
{"-b", std::make_shared<Backup>()},
{"-i", std::make_shared<Compress>()}, // Import
{"-e", std::make_shared<Decompress>()}, // Export
{"-s", std::make_shared<SnesToPc>()},
{"-i", std::make_shared<Compress>()}, // Import
{"-e", std::make_shared<Decompress>()}, // Export
{"-s", std::make_shared<SnesToPc>()},
{"-p", std::make_shared<PcToSnes>()}};
};

View File

@@ -13,6 +13,9 @@ enable_testing()
add_executable(
yaze_test
yaze_test.cc
z3ed_test.cc
../src/cli/patch.cc
../src/cli/command_handler.cc
compression_test.cc
snes_palette_test.cc
../src/app/rom.cc

85
test/z3ed_test.cc Normal file
View File

@@ -0,0 +1,85 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "cli/command_handler.h"
using namespace yaze::cli;
using ::testing::_;
using ::testing::Return;
// Mock class for CommandHandler
class MockCommandHandler : public CommandHandler {
public:
MOCK_METHOD(absl::Status, handle, (std::string_view arg), (override));
};
// Test fixture class
class CommandHandlerTest : public ::testing::Test {
protected:
std::shared_ptr<MockCommandHandler> mockHandler =
std::make_shared<MockCommandHandler>();
};
TEST_F(CommandHandlerTest, TestApplyPatch) {
Commands cmd;
cmd.handlers["-a"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-a"]->handle("apply_patch_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestCreatePatch) {
Commands cmd;
cmd.handlers["-cp"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-cp"]->handle("create_patch_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestOpen) {
Commands cmd;
cmd.handlers["-o"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-o"]->handle("open_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestBackup) {
Commands cmd;
cmd.handlers["-b"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-b"]->handle("backup_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestCompress) {
Commands cmd;
cmd.handlers["-c"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-c"]->handle("compress_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestDecompress) {
Commands cmd;
cmd.handlers["-d"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-d"]->handle("decompress_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestSnesToPc) {
Commands cmd;
cmd.handlers["-s"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-s"]->handle("snes_to_pc_args");
EXPECT_EQ(result, absl::OkStatus());
}
TEST_F(CommandHandlerTest, TestPcToSnes) {
Commands cmd;
cmd.handlers["-p"] = mockHandler;
EXPECT_CALL(*mockHandler, handle(_)).WillOnce(Return(absl::OkStatus()));
absl::Status result = cmd.handlers["-p"]->handle("pc_to_snes_args");
EXPECT_EQ(result, absl::OkStatus());
}