Deprecate `Reader` creation.

As we `Reader` is now deprecated, we also remove the unit tests on it.
`Reader` is now untested, and so it reduces the code coverage.
This commit is contained in:
Matthieu Gautier 2022-01-12 18:12:59 +01:00
parent 96e0d15ab4
commit fb7d9f02c8
5 changed files with 9 additions and 70 deletions

View File

@ -240,7 +240,7 @@ class Library : private LibraryBase
Book getBookByIdThreadSafe(const std::string& id) const; Book getBookByIdThreadSafe(const std::string& id) const;
std::shared_ptr<Reader> getReaderById(const std::string& id); DEPRECATED std::shared_ptr<Reader> getReaderById(const std::string& id);
std::shared_ptr<zim::Archive> getArchiveById(const std::string& id); std::shared_ptr<zim::Archive> getArchiveById(const std::string& id);
/** /**

View File

@ -73,6 +73,8 @@ class SuggestionItem
/** /**
* The Reader class is the class who allow to get an entry content from a zim * The Reader class is the class who allow to get an entry content from a zim
* file. * file.
*
* Reader is now deprecated. Directly use `zim::Archive`.
*/ */
using SuggestionsList_t = std::vector<SuggestionItem>; using SuggestionsList_t = std::vector<SuggestionItem>;
@ -88,17 +90,17 @@ class Reader
* unsplitted path as if the file were not splitted * unsplitted path as if the file were not splitted
* (.zim extesion). * (.zim extesion).
*/ */
explicit Reader(const string zimFilePath); explicit DEPRECATED Reader(const string zimFilePath);
/** /**
* Create a Reader to read a zim file given by the Archive. * Create a Reader to read a zim file given by the Archive.
* *
* @param archive The shared pointer to the Archive object. * @param archive The shared pointer to the Archive object.
*/ */
explicit Reader(const std::shared_ptr<zim::Archive> archive); explicit DEPRECATED Reader(const std::shared_ptr<zim::Archive> archive);
#ifndef _WIN32 #ifndef _WIN32
explicit Reader(int fd); explicit DEPRECATED Reader(int fd);
Reader(int fd, zim::offset_type offset, zim::size_type size); DEPRECATED Reader(int fd, zim::offset_type offset, zim::size_type size);
#endif #endif
~Reader() = default; ~Reader() = default;

View File

@ -684,9 +684,9 @@ TEST_F(LibraryTest, removeBookByIdRemovesTheBook)
TEST_F(LibraryTest, removeBookByIdDropsTheReader) TEST_F(LibraryTest, removeBookByIdDropsTheReader)
{ {
EXPECT_NE(nullptr, lib.getReaderById("raycharles")); EXPECT_NE(nullptr, lib.getArchiveById("raycharles"));
lib.removeBookById("raycharles"); lib.removeBookById("raycharles");
EXPECT_THROW(lib.getReaderById("raycharles"), std::out_of_range); EXPECT_THROW(lib.getArchiveById("raycharles"), std::out_of_range);
}; };
TEST_F(LibraryTest, removeBookByIdUpdatesTheSearchDB) TEST_F(LibraryTest, removeBookByIdUpdatesTheSearchDB)

View File

@ -10,7 +10,6 @@ tests = [
'manager', 'manager',
'name_mapper', 'name_mapper',
'opds_catalog', 'opds_catalog',
'reader',
'searcher' 'searcher'
] ]

View File

@ -1,62 +0,0 @@
#include "gtest/gtest.h"
#include "../include/reader.h"
#include "zim/archive.h"
namespace kiwix
{
/**
* This test file is written primarily to demonstrate how Reader is simply a
* wrapper over an archive. We will be dropping this wrapper soon.
**/
TEST (Reader, archiveWrapper) {
Reader reader("./test/zimfile.zim");
zim::Archive archive = *reader.getZimArchive();
std::ostringstream s;
s << archive.getUuid();
ASSERT_EQ(reader.getId(), s.str());
ASSERT_EQ(reader.getGlobalCount(), archive.getEntryCount());
ASSERT_EQ(reader.getMainPage().getTitle(), archive.getMainEntry().getTitle());
ASSERT_EQ(reader.hasFulltextIndex(), archive.hasFulltextIndex());
ASSERT_NO_THROW(reader.getRandomPage());
}
TEST (Reader, getFunctions) {
zim::Archive archive("./test/zimfile.zim");
Reader reader("./test/zimfile.zim");
auto archiveEntry = archive.getRandomEntry();
ASSERT_TRUE(reader.pathExists(archiveEntry.getPath()));
auto readerEntry = reader.getEntryFromPath(archiveEntry.getPath());
ASSERT_EQ(readerEntry.getTitle(), archiveEntry.getTitle());
ASSERT_FALSE(reader.pathExists("invalidEntryPath"));
ASSERT_THROW(reader.getEntryFromPath("invalidEntryPath"), NoEntry);
readerEntry = reader.getEntryFromTitle(archiveEntry.getTitle());
ASSERT_EQ(readerEntry.getTitle(), archiveEntry.getTitle());
}
TEST (Reader, suggestions) {
Reader reader("./test/zimfile.zim");
SuggestionsList_t suggestions;
reader.searchSuggestionsSmart("The Genius", 4, suggestions);
std::vector<std::string> suggestionResult, expectedResult;
std::string suggestionTitle;
for (auto it = suggestions.begin(); it != suggestions.end(); it++) {
suggestionResult.push_back(it->getTitle());
}
expectedResult = {
"The Genius After Hours",
"The Genius Hits the Road",
"The Genius Sings the Blues",
"The Genius of Ray Charles"
};
ASSERT_EQ(suggestionResult, expectedResult);
}
}