From a0130fb73faa0d304158b0b0432f203a2e5cf797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Me=C3=9Fmer?= Date: Thu, 19 Mar 2015 04:36:02 +0100 Subject: [PATCH] Refactor FsppDirTest --- fstest/FsppDirTest.h | 73 +++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/fstest/FsppDirTest.h b/fstest/FsppDirTest.h index 82538c1a..6006b5e4 100644 --- a/fstest/FsppDirTest.h +++ b/fstest/FsppDirTest.h @@ -15,11 +15,15 @@ public: this->LoadDir("/mydir/mysubdir")->createDir("mysubsubdir", this->MODE_PUBLIC); } - void EXPECT_HAS_ENTRIES(const std::vector &children, const std::initializer_list expected) { + void EXPECT_CHILDREN_ARE(const boost::filesystem::path &path, const std::initializer_list expected) { + EXPECT_CHILDREN_ARE(*this->LoadDir(path), expected); + } + + void EXPECT_CHILDREN_ARE(const fspp::Dir &dir, const std::initializer_list expected) { std::vector expectedChildren = expected; expectedChildren.push_back(fspp::Dir::Entry(fspp::Dir::EntryType::DIR, ".")); expectedChildren.push_back(fspp::Dir::Entry(fspp::Dir::EntryType::DIR, "..")); - EXPECT_UNORDERED_EQ(expectedChildren, children); + EXPECT_UNORDERED_EQ(expectedChildren, *dir.children()); } template @@ -52,32 +56,42 @@ fspp::Dir::Entry FileEntry(const std::string &name) { } TYPED_TEST_P(FsppDirTest, Children_RootDir_Empty) { - auto children = this->LoadDir("/")->children(); - this->EXPECT_HAS_ENTRIES(*children, {}); + this->EXPECT_CHILDREN_ARE("/", {}); } -TYPED_TEST_P(FsppDirTest, Children_RootDir_OneFile) { +TYPED_TEST_P(FsppDirTest, Children_RootDir_OneFile_Directly) { auto rootdir = this->LoadDir("/"); rootdir->createAndOpenFile("myfile", this->MODE_PUBLIC); - auto children = rootdir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE(*rootdir, { FileEntry("myfile") }); } -TYPED_TEST_P(FsppDirTest, Children_RootDir_OneDir) { +TYPED_TEST_P(FsppDirTest, Children_RootDir_OneFile_AfterReloadingDir) { + this->LoadDir("/")->createAndOpenFile("myfile", this->MODE_PUBLIC); + this->EXPECT_CHILDREN_ARE("/", { + FileEntry("myfile") + }); +} + +TYPED_TEST_P(FsppDirTest, Children_RootDir_OneDir_Directly) { auto rootdir = this->LoadDir("/"); rootdir->createDir("mydir", this->MODE_PUBLIC); - auto children = rootdir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE(*rootdir, { + DirEntry("mydir") + }); +} + +TYPED_TEST_P(FsppDirTest, Children_RootDir_OneDir_AfterReloadingDir) { + this->LoadDir("/")->createDir("mydir", this->MODE_PUBLIC); + this->EXPECT_CHILDREN_ARE("/", { DirEntry("mydir") }); } TYPED_TEST_P(FsppDirTest, Children_RootDir_LargerStructure) { this->InitDirStructure(); - auto children = this->LoadDir("/")->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE("/", { FileEntry("myfile"), DirEntry("mydir"), DirEntry("myemptydir") @@ -85,18 +99,15 @@ TYPED_TEST_P(FsppDirTest, Children_RootDir_LargerStructure) { } TYPED_TEST_P(FsppDirTest, Children_Nested_Empty) { - auto rootdir = this->LoadDir("/"); - rootdir->createDir("myemptydir", this->MODE_PUBLIC); - auto children = this->LoadDir("/myemptydir")->children(); - this->EXPECT_HAS_ENTRIES(*children, {}); + this->LoadDir("/")->createDir("myemptydir", this->MODE_PUBLIC); + this->EXPECT_CHILDREN_ARE("/myemptydir", {}); } TYPED_TEST_P(FsppDirTest, Children_Nested_OneFile_Directly) { this->LoadDir("/")->createDir("mydir", this->MODE_PUBLIC); auto dir = this->LoadDir("/mydir"); dir->createAndOpenFile("myfile", this->MODE_PUBLIC); - auto children = dir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE(*dir, { FileEntry("myfile") }); } @@ -104,9 +115,7 @@ TYPED_TEST_P(FsppDirTest, Children_Nested_OneFile_Directly) { TYPED_TEST_P(FsppDirTest, Children_Nested_OneFile_AfterReloadingDir) { this->LoadDir("/")->createDir("mydir", this->MODE_PUBLIC); this->LoadDir("/mydir")->createAndOpenFile("myfile", this->MODE_PUBLIC); - auto dir = this->LoadDir("/mydir"); - auto children = dir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE("/mydir", { FileEntry("myfile") }); } @@ -115,8 +124,7 @@ TYPED_TEST_P(FsppDirTest, Children_Nested_OneDir_Directly) { this->LoadDir("/")->createDir("mydir", this->MODE_PUBLIC); auto dir = this->LoadDir("/mydir"); dir->createDir("mysubdir", this->MODE_PUBLIC); - auto children = dir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE(*dir, { DirEntry("mysubdir") }); } @@ -124,23 +132,19 @@ TYPED_TEST_P(FsppDirTest, Children_Nested_OneDir_Directly) { TYPED_TEST_P(FsppDirTest, Children_Nested_OneDir_AfterReloadingDir) { this->LoadDir("/")->createDir("mydir", this->MODE_PUBLIC); this->LoadDir("/mydir")->createDir("mysubdir", this->MODE_PUBLIC); - auto dir = this->LoadDir("/mydir"); - auto children = dir->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE("/mydir", { DirEntry("mysubdir") }); } TYPED_TEST_P(FsppDirTest, Children_Nested_LargerStructure_Empty) { this->InitDirStructure(); - auto children = this->LoadDir("/myemptydir")->children(); - this->EXPECT_HAS_ENTRIES(*children, {}); + this->EXPECT_CHILDREN_ARE("/myemptydir", {}); } TYPED_TEST_P(FsppDirTest, Children_Nested_LargerStructure) { this->InitDirStructure(); - auto children = this->LoadDir("/mydir")->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE("/mydir", { FileEntry("myfile"), FileEntry("myfile2"), DirEntry("mysubdir") @@ -149,8 +153,7 @@ TYPED_TEST_P(FsppDirTest, Children_Nested_LargerStructure) { TYPED_TEST_P(FsppDirTest, Children_Nested2_LargerStructure) { this->InitDirStructure(); - auto children = this->LoadDir("/mydir/mysubdir")->children(); - this->EXPECT_HAS_ENTRIES(*children, { + this->EXPECT_CHILDREN_ARE("/mydir/mysubdir", { FileEntry("myfile"), DirEntry("mysubsubdir") }); @@ -184,8 +187,10 @@ TYPED_TEST_P(FsppDirTest, CreateDir_AlreadyExisting) { REGISTER_TYPED_TEST_CASE_P(FsppDirTest, Children_RootDir_Empty, - Children_RootDir_OneFile, - Children_RootDir_OneDir, + Children_RootDir_OneFile_Directly, + Children_RootDir_OneFile_AfterReloadingDir, + Children_RootDir_OneDir_Directly, + Children_RootDir_OneDir_AfterReloadingDir, Children_RootDir_LargerStructure, Children_Nested_Empty, Children_Nested_OneFile_Directly,