summaryrefslogtreecommitdiff
path: root/libdbpp/unittests/testUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libdbpp/unittests/testUtils.cpp')
-rw-r--r--libdbpp/unittests/testUtils.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/libdbpp/unittests/testUtils.cpp b/libdbpp/unittests/testUtils.cpp
index 3108641..4c269e9 100644
--- a/libdbpp/unittests/testUtils.cpp
+++ b/libdbpp/unittests/testUtils.cpp
@@ -5,6 +5,7 @@
#include <selectcommand.h>
#include <selectcommandUtil.impl.h>
#include <definedDirs.h>
+#include <fstream>
#include <pq-mock.h>
#include <boost/date_time/posix_time/posix_time_io.hpp>
@@ -102,3 +103,28 @@ BOOST_AUTO_TEST_CASE( extract )
BOOST_REQUIRE(!sel->fetch());
}
+BOOST_AUTO_TEST_CASE( bulkLoadStream )
+{
+ std::ifstream in((rootDir / "source.dat").string());
+ auto db = DB::ConnectionPtr(DB::MockDatabase::openConnectionTo("pqmock"));
+ db->beginBulkUpload("bulk1", "");
+ BOOST_REQUIRE_EQUAL(56, db->bulkUploadData(in));
+ db->endBulkUpload(nullptr);
+ db->select("SELECT COUNT(*) FROM bulk1")->forEachRow<int64_t>([](auto n) {
+ BOOST_REQUIRE_EQUAL(4, n);
+ });
+}
+
+BOOST_AUTO_TEST_CASE( bulkLoadFile )
+{
+ auto f = fopen((rootDir / "source.dat").c_str(), "r");
+ auto db = DB::ConnectionPtr(DB::MockDatabase::openConnectionTo("pqmock"));
+ db->beginBulkUpload("bulk2", "");
+ BOOST_REQUIRE_EQUAL(56, db->bulkUploadData(f));
+ db->endBulkUpload(nullptr);
+ fclose(f);
+ db->select("SELECT COUNT(*) FROM bulk2")->forEachRow<int64_t>([](auto n) {
+ BOOST_REQUIRE_EQUAL(4, n);
+ });
+}
+