#include #include #include #include #include "config.h" #include "file.h" #include "storage.h" namespace fs = std::filesystem; namespace { const std::string testConfigFilename{"./test.conf"}; const std::string testDbFilename{"./whiteboard.db3"}; } class ConfigTest: public ::testing::Test { protected: ConfigTest(){ } ~ConfigTest(){ } }; TEST_F(ConfigTest, defaultData) { std::string filename{testConfigFilename + "doesntexist"}; std::error_code ec; fs::remove(filename, ec); ASSERT_TRUE(!fs::exists(filename)); { Config config{filename}; EXPECT_EQ(config.getDataPath(), "/var/lib/whiteboard"); ASSERT_TRUE(!fs::exists(filename)); } ASSERT_TRUE(!fs::exists(filename)); } TEST_F(ConfigTest, testData) { File::setFile(testConfigFilename, R"CONFIG( /some/other/location 2592000 )CONFIG"); { Config config{testConfigFilename}; EXPECT_EQ(config.getDataPath(), "/some/other/location"); } std::error_code ec; fs::remove(testConfigFilename, ec); } class StorageTest: public ::testing::Test { protected: StorageTest(){ File::setFile(testConfigFilename, R"CONFIG( . 2592000 )CONFIG"); std::error_code ec; fs::remove(testDbFilename, ec); } ~StorageTest(){ std::error_code ec; fs::remove(testDbFilename, ec); fs::remove(testConfigFilename, ec); } }; TEST_F(StorageTest, create) { ASSERT_TRUE(!fs::exists(testDbFilename)); { Config config(testConfigFilename); ASSERT_EQ(config.getDataPath(), "."); Storage storage(config); } ASSERT_TRUE(fs::exists(testDbFilename)); }