Skip to content
Snippets Groups Projects
Verified Commit 9785bdb4 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: files

parent 8a5f3048
No related branches found
No related tags found
1 merge request!8F files
Pipeline #11821 failed
[requires] [requires]
caosdb/0.0.10 caosdb/0.0.11
gtest/1.11.0 gtest/1.11.0
[generators] [generators]
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
####################################################################### #######################################################################
set(test_cases set(test_cases
test_connection test_connection
test_file_transmission
test_transaction test_transaction
test_ccaosdb test_ccaosdb
) )
...@@ -106,7 +105,8 @@ foreach (i RANGE "${len_test_cases}") ...@@ -106,7 +105,8 @@ foreach (i RANGE "${len_test_cases}")
target_link_libraries(${test_case_name} PRIVATE ${CONAN_LIBS_CAOSDB} target_link_libraries(${test_case_name} PRIVATE ${CONAN_LIBS_CAOSDB}
${CONAN_LIBS_GTEST} ${CONAN_LIBS_GRPC} ${CONAN_LIBS_ABSEIL} ${CONAN_LIBS_GTEST} ${CONAN_LIBS_GRPC} ${CONAN_LIBS_ABSEIL}
${CONAN_LIBS_OPENSSL} ${CONAN_LIBS_C-ARES} ${CONAN_LIBS_BZIP2} ${CONAN_LIBS_OPENSSL} ${CONAN_LIBS_C-ARES} ${CONAN_LIBS_BZIP2}
${CONAN_LIBS_PROTOBUF} ${CONAN_LIBS_ZLIB} ${CONAN_LIBS_RE2}) ${CONAN_LIBS_PROTOBUF} ${CONAN_LIBS_ZLIB} ${CONAN_LIBS_RE2}
${CONAN_LIBS_BOOST})
target_include_directories(${test_case_name} target_include_directories(${test_case_name}
PUBLIC ${CONAN_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}) PUBLIC ${CONAN_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
if(LINTING) if(LINTING)
......
...@@ -24,12 +24,14 @@ ...@@ -24,12 +24,14 @@
#include "caosdb/status_code.h" // for SUCCESS, StatusCode #include "caosdb/status_code.h" // for SUCCESS, StatusCode
#include "caosdb/transaction.h" // for Entity, Transaction, UniqueRe... #include "caosdb/transaction.h" // for Entity, Transaction, UniqueRe...
#include "caosdb/transaction_status.h" // for TransactionStatus, StatusCode #include "caosdb/transaction_status.h" // for TransactionStatus, StatusCode
#include "gtest/gtest-message.h" // for Message #include <boost/filesystem/path.hpp>
#include "gtest/gtest-test-part.h" // for TestPartResult, SuiteApiResolver #include "gtest/gtest-message.h" // for Message
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, AssertionResult #include "gtest/gtest-test-part.h" // for TestPartResult, SuiteApiResolver
#include <memory> // for unique_ptr, allocator, __shar... #include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, AssertionResult
#include <string> // for string #include <iostream>
#include <vector> // for vector #include <memory> // for unique_ptr, allocator, __shar...
#include <string> // for string
#include <vector> // for vector
namespace caosdb::transaction { namespace caosdb::transaction {
using caosdb::entity::Entity; using caosdb::entity::Entity;
using caosdb::entity::MessageCode; using caosdb::entity::MessageCode;
...@@ -656,4 +658,64 @@ TEST_F(test_transaction, test_query_with_retrieve) { ...@@ -656,4 +658,64 @@ TEST_F(test_transaction, test_query_with_retrieve) {
EXPECT_EQ(count_and_retrieve->GetCountResult(), 3); EXPECT_EQ(count_and_retrieve->GetCountResult(), 3);
} }
TEST_F(test_transaction, test_file_upload) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
Entity file;
file.SetRole("File");
file.SetFilePath("test.txt");
file.SetLocalPath("test.txt");
auto insert_transaction(connection->CreateTransaction());
insert_transaction->InsertEntity(&file);
insert_transaction->ExecuteAsynchronously();
auto insert_status = insert_transaction->WaitForIt();
ASSERT_TRUE(insert_status.IsTerminated());
EXPECT_EQ(insert_status.GetCode(), StatusCode::SUCCESS);
const auto &insert_results =
dynamic_cast<const UniqueResult &>(insert_transaction->GetResultSet());
const auto &inserted_file = insert_results.GetEntity();
EXPECT_FALSE(inserted_file.GetId().empty());
EXPECT_FALSE(inserted_file.HasErrors());
}
TEST_F(test_transaction, test_file_download) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
Entity file;
file.SetRole("File");
file.SetFilePath("test.txt");
file.SetLocalPath("test.txt");
auto insert_transaction(connection->CreateTransaction());
insert_transaction->InsertEntity(&file);
insert_transaction->Execute();
const auto &insert_results = insert_transaction->GetResultSet();
const auto &inserted_file = insert_results.At(0);
ASSERT_FALSE(inserted_file.GetId().empty());
ASSERT_FALSE(inserted_file.HasErrors());
auto download_transaction(connection->CreateTransaction());
download_transaction->RetrieveAndDownloadFilesById(inserted_file.GetId(),
"downloaded.txt");
download_transaction->ExecuteAsynchronously();
download_transaction->WaitForIt();
const auto &download_results = download_transaction->GetResultSet();
ASSERT_EQ(download_results.Size(), 1);
const auto &downloaded_file = download_results.At(0);
ASSERT_FALSE(downloaded_file.GetId().empty());
ASSERT_FALSE(downloaded_file.HasErrors());
EXPECT_EQ(downloaded_file.GetLocalPath().string(), "downloaded.txt");
}
} // namespace caosdb::transaction } // namespace caosdb::transaction
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment