Skip to content
Snippets Groups Projects

Tests for f-copy-entity

1 file
+ 57
2
Compare changes
  • Side-by-side
  • Inline
+ 57
2
@@ -124,8 +124,7 @@ TEST_F(test_list_properties, insert_list_of_int) {
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<int64_t>{1, 2, 3});
abstract_list_property.SetValue(std::vector<int64_t>{1, 2, 3});
insertion_prop->InsertEntity(&abstract_list_property);
std::cout << "response " << insertion_prop->ResponseToString();
@@ -171,4 +170,60 @@ TEST_F(test_list_properties, insert_list_of_int) {
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
Loading