Skip to content
Snippets Groups Projects

Tests for f-copy-entity

Merged Timm Fitschen requested to merge f-copy-entity into dev
1 file
+ 57
2
Compare changes
  • Side-by-side
  • Inline
@@ -124,8 +124,7 @@ TEST_F(test_list_properties, insert_list_of_int) {
@@ -124,8 +124,7 @@ TEST_F(test_list_properties, insert_list_of_int) {
abstract_list_property.SetRole(Role::PROPERTY);
abstract_list_property.SetRole(Role::PROPERTY);
abstract_list_property.SetName("TestProp");
abstract_list_property.SetName("TestProp");
abstract_list_property.SetDataType(DataType::ListOf(AtomicDataType::INTEGER));
abstract_list_property.SetDataType(DataType::ListOf(AtomicDataType::INTEGER));
abstract_list_property.SetValue(
abstract_list_property.SetValue(std::vector<int64_t>{1, 2, 3});
std::vector<int64_t>{1, 2, 3});
insertion_prop->InsertEntity(&abstract_list_property);
insertion_prop->InsertEntity(&abstract_list_property);
std::cout << "response " << insertion_prop->ResponseToString();
std::cout << "response " << insertion_prop->ResponseToString();
@@ -171,4 +170,60 @@ TEST_F(test_list_properties, insert_list_of_int) {
@@ -171,4 +170,60 @@ TEST_F(test_list_properties, insert_list_of_int) {
EXPECT_EQ(value.AsList().at(1).AsInteger(), 5);
EXPECT_EQ(value.AsList().at(1).AsInteger(), 5);
}
}
 
TEST_F(test_list_properties, insert_list_of_bool) {
 
const auto &connection =
 
caosdb::connection::ConnectionManager::GetDefaultConnection();
 
 
auto insertion_prop(connection->CreateTransaction());
 
 
Entity abstract_list_property;
 
abstract_list_property.SetRole(Role::PROPERTY);
 
abstract_list_property.SetName("TestProp");
 
abstract_list_property.SetDataType(DataType::ListOf(AtomicDataType::INTEGER));
 
abstract_list_property.SetValue(std::vector<bool>{true, true, false});
 
 
insertion_prop->InsertEntity(&abstract_list_property);
 
std::cout << "response " << insertion_prop->ResponseToString();
 
insertion_prop->Execute();
 
EXPECT_TRUE(insertion_prop->GetStatus().IsTerminated());
 
 
auto insertion_rt(connection->CreateTransaction());
 
 
Property list_property;
 
list_property.SetId(insertion_prop->GetResultSet().at(0).GetId());
 
list_property.SetValue(std::vector<bool>{false, false, true});
 
 
Entity entity;
 
entity.SetRole(Role::RECORD_TYPE);
 
entity.SetName("TestRT");
 
entity.AppendProperty(list_property);
 
 
insertion_rt->InsertEntity(&entity);
 
std::cout << "response " << insertion_rt->ResponseToString();
 
insertion_rt->Execute();
 
EXPECT_TRUE(insertion_rt->GetStatus().IsTerminated());
 
EXPECT_FALSE(insertion_rt->GetStatus().IsError());
 
 
// retrieve and check again
 
auto retrieval(connection->CreateTransaction());
 
retrieval->RetrieveById(insertion_rt->GetResultSet().at(0).GetId());
 
retrieval->Execute();
 
 
EXPECT_TRUE(retrieval->GetStatus().IsTerminated());
 
EXPECT_FALSE(retrieval->GetStatus().IsError());
 
 
const auto &same_entity = retrieval->GetResultSet().at(0);
 
const auto &data_type = same_entity.GetProperties().at(0).GetDataType();
 
const auto &value = same_entity.GetProperties().at(0).GetValue();
 
 
EXPECT_TRUE(data_type.IsList());
 
EXPECT_TRUE(data_type.AsList().IsListOfAtomic());
 
EXPECT_EQ(data_type.AsList().GetAtomicDataType(), AtomicDataType::INTEGER);
 
 
EXPECT_TRUE(value.IsList());
 
EXPECT_EQ(value.AsList().size(), 3);
 
EXPECT_TRUE(value.AsList().at(1).IsBool());
 
EXPECT_FALSE(value.AsList().at(1).AsBool());
 
}
 
} // namespace caosdb::entity
} // namespace caosdb::entity
Loading