From 2d6a7fe88d4a11d25fa7b83c867e8a282bad8284 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Mon, 22 Nov 2021 18:52:25 +0400 Subject: [PATCH] Testing of NameMapperProxy --- test/name_mapper.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/test/name_mapper.cpp b/test/name_mapper.cpp index b27306861..7410e28ac 100644 --- a/test/name_mapper.cpp +++ b/test/name_mapper.cpp @@ -102,3 +102,44 @@ TEST_F(NameMapperTest, HumanReadableNameMapperWithAliases) EXPECT_EQ("04-2021-10", nm.getIdForName("zero_four_2021-10")); EXPECT_EQ("04-2021-10", nm.getIdForName("zero_four")); } + +TEST_F(NameMapperTest, NameMapperProxyWithoutAliases) +{ + CapturedStderr stderror; + kiwix::NameMapperProxy nm(lib, false); + EXPECT_EQ("", std::string(stderror)); + + checkUnaliasedEntriesInNameMapper(nm); + EXPECT_THROW(nm.getIdForName("zero_four"), std::out_of_range); + + lib.removeBookById("04-2021-10"); + nm.update(); + EXPECT_THROW(nm.getNameForId("04-2021-10"), std::out_of_range); + EXPECT_THROW(nm.getIdForName("zero_four_2021-10"), std::out_of_range); + EXPECT_THROW(nm.getIdForName("zero_four"), std::out_of_range); +} + +TEST_F(NameMapperTest, NameMapperProxyWithAliases) +{ + CapturedStderr stderror; + kiwix::NameMapperProxy nm(lib, true); + EXPECT_EQ( + "Path collision: /data/zero_four_2021-10.zim and" + " /data/zero_four_2021-11.zim can't share the same URL path 'zero_four'." + " Therefore, only /data/zero_four_2021-10.zim will be served.\n" + , std::string(stderror) + ); + + checkUnaliasedEntriesInNameMapper(nm); + EXPECT_EQ("04-2021-10", nm.getIdForName("zero_four")); + + { + CapturedStderr nmUpdateStderror; + lib.removeBookById("04-2021-10"); + nm.update(); + EXPECT_EQ("", std::string(nmUpdateStderror)); + } + EXPECT_EQ("04-2021-11", nm.getIdForName("zero_four")); + EXPECT_THROW(nm.getNameForId("04-2021-10"), std::out_of_range); + EXPECT_THROW(nm.getIdForName("zero_four_2021-10"), std::out_of_range); +}