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 {
--- a/C++/ZipArchive.h	Tue Nov 11 14:52:25 2014 +0100
+++ b/C++/ZipArchive.h	Tue Nov 11 15:05:18 2014 +0100
@@ -417,7 +417,7 @@
 	 * @param flags the optional flags
 	 * @return the value
 	 */
-	int getFlag(ZipFlags which, ZipFlags flags) const;
+	int getFlag(ZipFlags which, ZipFlags flags = 0) const;
 
 };