#include #include #include #include using namespace std; using namespace crepe; using namespace testing; class SaveManagerTest : public Test { Mediator m; class TestSaveManager : public SaveManager { using SaveManager::SaveManager; // in-memory database for testing DB db{}; virtual DB & get_db() override { return this->db; } }; public: TestSaveManager mgr{m}; }; TEST_F(SaveManagerTest, ReadWrite) { ASSERT_FALSE(mgr.has("foo")); mgr.set("foo", "bar"); ASSERT_TRUE(mgr.has("foo")); ValueBroker value = mgr.get("foo"); EXPECT_EQ(value.get(), "bar"); } TEST_F(SaveManagerTest, DefaultValue) { ValueBroker value = mgr.get("foo", 3); ASSERT_EQ(value.get(), 3); value.set(5); ASSERT_EQ(value.get(), 5); }