FreeCAD

Форк
0
/
zipfile.cpp 
78 строк · 2.6 Кб
1
#include <gtest/gtest.h>
2
#include <cstdio>
3
#include <memory>
4
#include <zipios++/zipfile.h>
5

6
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)
7
TEST(ZipFile, TestValidity)
8
{
9
    zipios::ZipFile zf;
10
    EXPECT_EQ(zf.isValid(), false);
11
    EXPECT_THROW(zf.entries(), zipios::InvalidStateException);
12
    EXPECT_THROW(zf.getEntry("inexistant", zipios::FileCollection::MatchPath::MATCH),
13
                 zipios::InvalidStateException);
14
    EXPECT_THROW(zf.getEntry("inexistant", zipios::FileCollection::MatchPath::IGNORE),
15
                 zipios::InvalidStateException);
16
    EXPECT_THROW(zf.getInputStream("inexistant", zipios::FileCollection::MatchPath::MATCH),
17
                 zipios::InvalidStateException);
18
    EXPECT_THROW(zf.getInputStream("inexistant", zipios::FileCollection::MatchPath::IGNORE),
19
                 zipios::InvalidStateException);
20
    EXPECT_THROW(zf.getName(), zipios::InvalidStateException);
21
    EXPECT_THROW(zf.size(), zipios::InvalidStateException);
22
    zf.close();
23
    EXPECT_EQ(zf.isValid(), false);
24
}
25

26
TEST(ZipFile, TestNonExisting)
27
{
28
    zipios::ZipFile zf("this/file/does/not/exist");
29
    EXPECT_EQ(zf.isValid(), false);
30
}
31

32
class ZipFileTest: public ::testing::Test
33
{
34
protected:
35
    void SetUp() override
36
    {
37
        std::ofstream os("empty.zip", std::ios::out | std::ios::binary);
38
        os << static_cast<char>(0x50);
39
        os << static_cast<char>(0x4B);
40
        os << static_cast<char>(0x05);
41
        os << static_cast<char>(0x06);
42
        os << static_cast<char>(0x00);
43
        os << static_cast<char>(0x00);
44
        os << static_cast<char>(0x00);
45
        os << static_cast<char>(0x00);
46
        os << static_cast<char>(0x00);
47
        os << static_cast<char>(0x00);
48
        os << static_cast<char>(0x00);
49
        os << static_cast<char>(0x00);
50
        os << static_cast<char>(0x00);
51
        os << static_cast<char>(0x00);
52
        os << static_cast<char>(0x00);
53
        os << static_cast<char>(0x00);
54
        os << static_cast<char>(0x00);
55
        os << static_cast<char>(0x00);
56
        os << static_cast<char>(0x00);
57
        os << static_cast<char>(0x00);
58
        os << static_cast<char>(0x00);
59
        os << static_cast<char>(0x00);
60
    }
61
    void TearDown() override
62
    {
63
        // delete empty.zip
64
        std::remove("empty.zip");
65
    }
66
};
67

68
TEST_F(ZipFileTest, TestValid)
69
{
70
    zipios::ZipFile zf("empty.zip");
71
    EXPECT_EQ(zf.isValid(), true);
72
    EXPECT_EQ(zf.entries().empty(), true);
73
    EXPECT_EQ(zf.getName(), "empty.zip");
74
    EXPECT_EQ(zf.size(), 0);
75
    zf.close();
76
    EXPECT_EQ(zf.isValid(), false);
77
}
78
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers,readability-magic-numbers)
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.