From 359c1c5d9d16dff69a60283a6fbaae33ab0c1f89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org>
Date: Tue, 17 Aug 2021 14:54:27 +0200
Subject: [PATCH] TST: extend integration test

---
 test/test_transaction.cpp | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index f20f1dc..008093a 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -20,6 +20,7 @@
  */
 #include "caosdb/connection.h" // for Connection, ConnectionManager
 #include "caosdb/entity.h"     // for Entity, Messages, Message
+#include "caosdb/file_transmission/file_reader.h" // for FileReader
 #include "caosdb/file_transmission/file_writer.h" // for FileWriter
 #include "caosdb/message_code.h"       // for ENTITY_DOES_NOT_EXIST, Messag...
 #include "caosdb/status_code.h"        // for SUCCESS, StatusCode
@@ -690,9 +691,18 @@ TEST_F(test_transaction, test_file_upload) {
   const auto &inserted_file = insert_results.at(0);
   EXPECT_FALSE(inserted_file.GetId().empty());
   EXPECT_FALSE(inserted_file.HasErrors());
+
+  // Check file once more
+  auto count_query(connection->CreateTransaction());
+  count_query->Query("COUNT FILE WHICH IS STORED AT 'test.txt'");
+  count_query->ExecuteAsynchronously();
+  auto count_and_retrieve_status = count_query->WaitForIt();
+  ASSERT_TRUE(count_and_retrieve_status.IsTerminated());
+  ASSERT_FALSE(count_and_retrieve_status.IsError());
+  EXPECT_EQ(count_query->GetCountResult(), 1);
 }
 
-TEST_F(test_transaction, test_file_download) {
+TEST_F(test_transaction, test_file_up_n_download) {
   const auto &connection =
       caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -725,6 +735,14 @@ TEST_F(test_transaction, test_file_download) {
   ASSERT_FALSE(downloaded_file.HasErrors());
   EXPECT_EQ(downloaded_file.GetLocalPath().string(),
             test_download_file_1.string());
+
+  FileReader reader_remote(test_upload_file_1);
+  std::string buffer_local(1024, 'c');
+  std::string buffer_remote(1024, 'c');
+  for (int i = 0; i < 8; i++) {
+    reader_remote.read(buffer_remote);
+    EXPECT_EQ(buffer_remote, buffer_local);
+  }
 }
 
 } // namespace caosdb::transaction
-- 
GitLab