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

TST: add test for list of boolean

parent d8a2d953
No related branches found
No related tags found
1 merge request!15Tests for f-copy-entity
Pipeline #13208 failed
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment