Mercurial > code
changeset 286:2ff6559c5f1d
Zip: add more tests
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 11 Nov 2014 15:05:18 +0100 |
parents | 9b6990fa8fd9 |
children | c6a6bf42232b 8847c0acd944 7433ebe6a8b0 |
files | C++/Tests/Zip/main.cpp C++/ZipArchive.h |
diffstat | 2 files changed, 70 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/C++/Tests/Zip/main.cpp Tue Nov 11 14:52:25 2014 +0100 +++ b/C++/Tests/Zip/main.cpp Tue Nov 11 15:05:18 2014 +0100 @@ -22,6 +22,75 @@ using namespace source; +/* -------------------------------------------------------- + * File source + * -------------------------------------------------------- */ + +TEST(Source, file) +{ + remove(BINARY "/output.zip"); + + try { + ZipArchive archive{BINARY "/output.zip", ZIP_CREATE}; + + archive.add(File{SOURCE "/data/data.txt"}, "data.txt"); + } catch (const std::exception &ex) { + std::cerr << ex.what() << std::endl; + } + + try { + ZipArchive archive{BINARY "/output.zip"}; + + auto stats = archive.stat("data.txt"); + auto file = archive.open("data.txt"); + auto content = file.read(stats.size); + + ASSERT_EQ("abcdef\n", content); + } catch (const std::exception &ex) { + std::cerr << ex.what() << std::endl; + } +} + +TEST(Source, buffer) +{ + remove(BINARY "/output.zip"); + + try { + ZipArchive archive{BINARY "/output.zip", ZIP_CREATE}; + + archive.add(Buffer{"abcdef"}, "data.txt"); + } catch (const std::exception &ex) { + std::cerr << ex.what() << std::endl; + } + + try { + ZipArchive archive{BINARY "/output.zip"}; + + auto stats = archive.stat("data.txt"); + auto file = archive.open("data.txt"); + auto content = file.read(stats.size); + + ASSERT_EQ("abcdef", content); + } catch (const std::exception &ex) { + std::cerr << ex.what() << std::endl; + } +} + +/* -------------------------------------------------------- + * Basic + * -------------------------------------------------------- */ + +TEST(Basic, numEntries) +{ + try { + ZipArchive archive{SOURCE "/data/stats.zip"}; + + ASSERT_EQ(static_cast<ZipInt64>(1), archive.numEntries()); + } catch (const std::exception &ex) { + std::cerr << ex.what() << std::endl; + } +} + TEST(Basic, stat) { try {