Tests: add zipios++ unit tests

This commit is contained in:
wmayer
2023-03-09 22:22:39 +01:00
committed by wwmayer
parent 0adc473d53
commit 4ed6150231
4 changed files with 151 additions and 0 deletions

View File

@@ -3,3 +3,4 @@ add_subdirectory(App)
add_subdirectory(Gui)
add_subdirectory(Misc)
add_subdirectory(Qt)
add_subdirectory(zipios++)

View File

@@ -0,0 +1,6 @@
target_sources(
Tests_run
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/collectioncollection.cpp
${CMAKE_CURRENT_SOURCE_DIR}/zipfile.cpp
)

View File

@@ -0,0 +1,73 @@
#include "gtest/gtest.h"
#include <memory>
#include <zipios++/collcoll.h>
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)
TEST(Collection, TestValidity)
{
zipios::CollectionCollection cc;
EXPECT_EQ(cc.isValid(), true);
EXPECT_EQ(cc.entries().empty(), true);
EXPECT_EQ(cc.getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(cc.getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(cc.getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(cc.getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(cc.getName(), "-"); // default name is "-"
EXPECT_EQ(cc.size(), 0);
cc.close();
EXPECT_EQ(cc.isValid(), false);
}
TEST(Collection, TestCopy)
{
zipios::CollectionCollection cc;
zipios::CollectionCollection copy(cc);
EXPECT_EQ(copy.isValid(), true);
EXPECT_EQ(copy.entries().empty(), true);
EXPECT_EQ(copy.getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(copy.getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(copy.getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(copy.getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(copy.getName(), "-"); // default name is "-"
EXPECT_EQ(copy.size(), 0);
}
TEST(Collection, TestCopyAssign)
{
zipios::CollectionCollection cc;
zipios::CollectionCollection copy;
copy = cc;
EXPECT_EQ(copy.isValid(), true);
EXPECT_EQ(copy.entries().empty(), true);
EXPECT_EQ(copy.getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(copy.getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(copy.getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(copy.getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(copy.getName(), "-"); // default name is "-"
EXPECT_EQ(copy.size(), 0);
}
TEST(Collection, TestClone)
{
zipios::CollectionCollection cc;
std::unique_ptr<zipios::FileCollection> pointer(cc.clone());
EXPECT_EQ(pointer->isValid(), true);
EXPECT_EQ(pointer->entries().empty(), true);
EXPECT_EQ(pointer->getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(pointer->getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(pointer->getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH), nullptr);
EXPECT_EQ(pointer->getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE), nullptr);
EXPECT_EQ(pointer->getName(), "-"); // default name is "-"
EXPECT_EQ(pointer->size(), 0);
}
TEST(Collection, TestAdd)
{
zipios::CollectionCollection cc;
zipios::FileCollection* pointer(cc.clone());
EXPECT_EQ(cc.addCollection(pointer), true);
EXPECT_EQ(cc.addCollection(nullptr), false);
EXPECT_EQ(cc.addCollection(cc), false);
}
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)

View File

@@ -0,0 +1,71 @@
#include "gtest/gtest.h"
#include <memory>
#include <cstdio>
#include <zipios++/zipfile.h>
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)
TEST(ZipFile, TestValidity)
{
zipios::ZipFile zf;
EXPECT_EQ(zf.isValid(), false);
EXPECT_THROW(zf.entries(), zipios::InvalidStateException);
EXPECT_THROW(zf.getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH), zipios::InvalidStateException);
EXPECT_THROW(zf.getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE), zipios::InvalidStateException);
EXPECT_THROW(zf.getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH), zipios::InvalidStateException);
EXPECT_THROW(zf.getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE), zipios::InvalidStateException);
EXPECT_THROW(zf.getName(), zipios::InvalidStateException);
EXPECT_THROW(zf.size(), zipios::InvalidStateException);
zf.close();
EXPECT_EQ(zf.isValid(), false);
}
TEST(ZipFile, TestNonExisting)
{
zipios::ZipFile zf("this/file/does/not/exist");
EXPECT_EQ(zf.isValid(), false);
}
class ZipFileTest : public ::testing::Test {
protected:
void SetUp() override {
std::ofstream os("empty.zip", std::ios::out | std::ios::binary);
os << static_cast<char>(0x50);
os << static_cast<char>(0x4B);
os << static_cast<char>(0x05);
os << static_cast<char>(0x06);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
os << static_cast<char>(0x00);
}
void TearDown() override {
// delete empty.zip
std::remove("empty.zip");
}
};
TEST_F(ZipFileTest, TestValid)
{
zipios::ZipFile zf("empty.zip");
EXPECT_EQ(zf.isValid(), true);
EXPECT_EQ(zf.entries().empty(), true);
EXPECT_EQ(zf.getName(), "empty.zip");
EXPECT_EQ(zf.size(), 0);
zf.close();
EXPECT_EQ(zf.isValid(), false);
}
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)