mirai/tests/saving.cpp

48 lines
1.4 KiB
C++

/*
* Mirai. Copyright (C) 2024 Vyn
* This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only)
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
*/
#include "core/BaseFileSource.h"
#include "core/Mirai.h"
#include "core/StdFileSource.h"
#include "core/TaskItem.h"
#include "core/TodoMd.h"
#include <catch2/catch_test_macros.hpp>
#include <memory>
TEST_CASE("Saving data")
{
SECTION("Saving using file resource")
{
{
mirai::Mirai mirai;
auto fileResource = std::make_unique<mirai::StdFileSource>(
mirai::BaseFileSourceConstructor{.name = "Testing", .path = "testing.md"}
);
mirai.loadResource(std::move(fileResource));
auto task = mirai::TodoMdFormat::stringToTask(
"- [X] 08:00-10:00 > This is a test -- #mirai", "2024-04-19"
);
mirai.getResources()[0]->addTask(task);
mirai.save();
}
{
mirai::Mirai mirai;
auto fileResource = std::make_unique<mirai::StdFileSource>(
mirai::BaseFileSourceConstructor{.name = "Testing", .path = "testing.md"}
);
mirai.loadResource(std::move(fileResource));
const auto &resources = mirai.getResources();
REQUIRE(resources.size() == 1);
REQUIRE(resources[0]->getName() == "Testing");
REQUIRE(resources[0]->getTasks().size() == 1);
REQUIRE(resources[0]->getTasks().at(0)->getText() == "This is a test");
REQUIRE(resources[0]->getTasks().at(0)->getDate() == "2024-04-19");
}
}
}