Skip to content
Snippets Groups Projects
Commit 1b96e8d3 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Merge branch 'f-value-data-structs' into 'dev'

Tests for value and datatype structs

See merge request !16
parents 03099196 e3ac0e51
Branches
Tags
1 merge request!16Tests for value and datatype structs
Pipeline #13999 passed
[requires] [requires]
caosdb/0.0.16 caosdb/0.0.17
gtest/1.11.0 gtest/1.11.0
[generators] [generators]
......
...@@ -298,7 +298,9 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { ...@@ -298,7 +298,9 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
caosdb_entity_create_entity(&original_entity); caosdb_entity_create_entity(&original_entity);
caosdb_entity_entity_set_name(&original_entity, "TestName"); caosdb_entity_entity_set_name(&original_entity, "TestName");
caosdb_entity_entity_set_role(&original_entity, "PROPERTY"); caosdb_entity_entity_set_role(&original_entity, "PROPERTY");
caosdb_entity_entity_set_datatype(&original_entity, "TEXT", false, false); caosdb_entity_datatype in_type;
caosdb_entity_create_atomic_datatype(&in_type, "TEXT");
caosdb_entity_entity_set_datatype(&original_entity, &in_type);
caosdb_transaction_transaction insert_transaction; caosdb_transaction_transaction insert_transaction;
caosdb_connection_connection_create_transaction(&connection, caosdb_connection_connection_create_transaction(&connection,
...@@ -347,17 +349,14 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { ...@@ -347,17 +349,14 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
caosdb_entity_entity_get_role(&retrieved_entity_1, &out); caosdb_entity_entity_get_role(&retrieved_entity_1, &out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
bool is_list_in[] = {false}; // NOLINT caosdb_entity_datatype out_type;
bool is_ref_in[] = {false}; // NOLINT caosdb_entity_entity_get_datatype(&original_entity, &out_type);
caosdb_entity_entity_get_datatype(&original_entity, &in, is_ref_in, bool out_is(false);
is_list_in); caosdb_entity_datatype_is_atomic(&out_type, &out_is);
bool is_list_out[] = {false}; // NOLINT EXPECT_TRUE(out_is);
bool is_ref_out[] = {false}; // NOLINT caosdb_entity_datatype_get_datatype_name(&in_type, &in);
caosdb_entity_entity_get_datatype(&retrieved_entity_1, &out, is_ref_out, caosdb_entity_datatype_get_datatype_name(&out_type, &out);
is_list_out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
EXPECT_EQ(*is_list_in, *is_list_out);
EXPECT_EQ(*is_ref_in, *is_ref_out);
// Change name and update // Change name and update
return_code = return_code =
...@@ -414,13 +413,12 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { ...@@ -414,13 +413,12 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
caosdb_entity_entity_get_role(&retrieved_entity_2, &out); caosdb_entity_entity_get_role(&retrieved_entity_2, &out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
caosdb_entity_entity_get_datatype(&original_entity, &in, is_ref_in, caosdb_entity_entity_get_datatype(&retrieved_entity_2, &out_type);
is_list_in); caosdb_entity_datatype_is_atomic(&out_type, &out_is);
caosdb_entity_entity_get_datatype(&retrieved_entity_2, &out, is_ref_out, EXPECT_TRUE(out_is);
is_list_out); caosdb_entity_datatype_get_datatype_name(&in_type, &in);
caosdb_entity_datatype_get_datatype_name(&out_type, &out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
EXPECT_EQ(*is_ref_in, *is_ref_out);
EXPECT_EQ(*is_list_in, *is_list_out);
// Now delete // Now delete
caosdb_transaction_transaction delete_transaction; caosdb_transaction_transaction delete_transaction;
...@@ -472,6 +470,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { ...@@ -472,6 +470,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
caosdb_transaction_delete_transaction(&retrieve_transaction_1); caosdb_transaction_delete_transaction(&retrieve_transaction_1);
caosdb_transaction_delete_transaction(&insert_transaction); caosdb_transaction_delete_transaction(&insert_transaction);
caosdb_entity_delete_entity(&original_entity); caosdb_entity_delete_entity(&original_entity);
caosdb_entity_delete_datatype(&in_type);
} }
TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) { TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) {
...@@ -486,7 +485,9 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) { ...@@ -486,7 +485,9 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) {
caosdb_entity_entity_set_name(&original_prop, "TestProp"); caosdb_entity_entity_set_name(&original_prop, "TestProp");
caosdb_entity_entity_set_role(&original_prop, "PROPERTY"); caosdb_entity_entity_set_role(&original_prop, "PROPERTY");
caosdb_entity_entity_set_datatype(&original_prop, "TEXT", false, false); caosdb_entity_datatype original_type;
caosdb_entity_create_atomic_datatype(&original_type, "TEXT");
caosdb_entity_entity_set_datatype(&original_prop, &original_type);
std::cout << "Inserting a property..." << std::endl; std::cout << "Inserting a property..." << std::endl;
caosdb_transaction_transaction prop_insertion; caosdb_transaction_transaction prop_insertion;
...@@ -540,7 +541,9 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) { ...@@ -540,7 +541,9 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) {
caosdb_entity_property rec_prop; caosdb_entity_property rec_prop;
caosdb_entity_create_property(&rec_prop); caosdb_entity_create_property(&rec_prop);
caosdb_entity_property_set_id(&rec_prop, prop_id); caosdb_entity_property_set_id(&rec_prop, prop_id);
caosdb_entity_property_set_string_value(&rec_prop, "Bla"); caosdb_entity_value in_value;
caosdb_entity_create_string_value(&in_value, "Bla");
caosdb_entity_property_set_value(&rec_prop, &in_value);
caosdb_entity_entity_append_property(&original_rec, &rec_prop); caosdb_entity_entity_append_property(&original_rec, &rec_prop);
caosdb_transaction_transaction rec_insertion; caosdb_transaction_transaction rec_insertion;
...@@ -593,8 +596,10 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) { ...@@ -593,8 +596,10 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) {
caosdb_entity_entity_get_name(&original_prop, &in); caosdb_entity_entity_get_name(&original_prop, &in);
caosdb_entity_property_get_name(&retrieved_property, &out); caosdb_entity_property_get_name(&retrieved_property, &out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
caosdb_entity_property_get_string_value(&rec_prop, &in); caosdb_entity_value out_value;
caosdb_entity_property_get_string_value(&retrieved_property, &out); caosdb_entity_property_get_value(&retrieved_property, &out_value);
caosdb_entity_value_get_as_string(&in_value, &in);
caosdb_entity_value_get_as_string(&out_value, &out);
EXPECT_EQ(strcmp(in, out), 0); EXPECT_EQ(strcmp(in, out), 0);
caosdb_transaction_delete_transaction(&retrieve_transaction); caosdb_transaction_delete_transaction(&retrieve_transaction);
...@@ -607,6 +612,8 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) { ...@@ -607,6 +612,8 @@ TEST_F(test_ccaosdb, test_insert_with_prop_and_parent) {
caosdb_entity_delete_entity(&original_rt); caosdb_entity_delete_entity(&original_rt);
caosdb_transaction_delete_transaction(&prop_insertion); caosdb_transaction_delete_transaction(&prop_insertion);
caosdb_entity_delete_entity(&original_prop); caosdb_entity_delete_entity(&original_prop);
caosdb_entity_delete_datatype(&original_type);
caosdb_entity_delete_value(&in_value);
} }
TEST_F(test_ccaosdb, test_up_n_download_file) { TEST_F(test_ccaosdb, test_up_n_download_file) {
......
...@@ -105,13 +105,13 @@ TEST_F(test_list_properties, insert_list_of_text) { ...@@ -105,13 +105,13 @@ TEST_F(test_list_properties, insert_list_of_text) {
const auto &value = same_entity.GetProperties().at(0).GetValue(); const auto &value = same_entity.GetProperties().at(0).GetValue();
EXPECT_TRUE(data_type.IsList()); EXPECT_TRUE(data_type.IsList());
EXPECT_TRUE(data_type.AsList().IsListOfAtomic()); EXPECT_TRUE(data_type.GetAsList().IsListOfAtomic());
EXPECT_EQ(data_type.AsList().GetAtomicDataType(), AtomicDataType::TEXT); EXPECT_EQ(data_type.GetAsList().GetAtomicDataType(), AtomicDataType::TEXT);
EXPECT_TRUE(value.IsList()); EXPECT_TRUE(value.IsVector());
EXPECT_EQ(value.AsList().size(), 3); EXPECT_EQ(value.GetAsVector().size(), 3);
EXPECT_TRUE(value.AsList().at(1).IsString()); EXPECT_TRUE(value.GetAsVector().at(1).IsString());
EXPECT_EQ(value.AsList().at(1).AsString(), "item5"); EXPECT_EQ(value.GetAsVector().at(1).GetAsString(), "item5");
} }
TEST_F(test_list_properties, insert_list_of_int) { TEST_F(test_list_properties, insert_list_of_int) {
...@@ -161,13 +161,13 @@ TEST_F(test_list_properties, insert_list_of_int) { ...@@ -161,13 +161,13 @@ TEST_F(test_list_properties, insert_list_of_int) {
const auto &value = same_entity.GetProperties().at(0).GetValue(); const auto &value = same_entity.GetProperties().at(0).GetValue();
EXPECT_TRUE(data_type.IsList()); EXPECT_TRUE(data_type.IsList());
EXPECT_TRUE(data_type.AsList().IsListOfAtomic()); EXPECT_TRUE(data_type.GetAsList().IsListOfAtomic());
EXPECT_EQ(data_type.AsList().GetAtomicDataType(), AtomicDataType::INTEGER); EXPECT_EQ(data_type.GetAsList().GetAtomicDataType(), AtomicDataType::INTEGER);
EXPECT_TRUE(value.IsList()); EXPECT_TRUE(value.IsVector());
EXPECT_EQ(value.AsList().size(), 3); EXPECT_EQ(value.GetAsVector().size(), 3);
EXPECT_TRUE(value.AsList().at(1).IsInteger()); EXPECT_TRUE(value.GetAsVector().at(1).IsInt64());
EXPECT_EQ(value.AsList().at(1).AsInteger(), 5); EXPECT_EQ(value.GetAsVector().at(1).GetAsInt64(), 5);
} }
TEST_F(test_list_properties, insert_list_of_bool) { TEST_F(test_list_properties, insert_list_of_bool) {
...@@ -217,13 +217,13 @@ TEST_F(test_list_properties, insert_list_of_bool) { ...@@ -217,13 +217,13 @@ TEST_F(test_list_properties, insert_list_of_bool) {
const auto &value = same_entity.GetProperties().at(0).GetValue(); const auto &value = same_entity.GetProperties().at(0).GetValue();
EXPECT_TRUE(data_type.IsList()); EXPECT_TRUE(data_type.IsList());
EXPECT_TRUE(data_type.AsList().IsListOfAtomic()); EXPECT_TRUE(data_type.GetAsList().IsListOfAtomic());
EXPECT_EQ(data_type.AsList().GetAtomicDataType(), AtomicDataType::BOOLEAN); EXPECT_EQ(data_type.GetAsList().GetAtomicDataType(), AtomicDataType::BOOLEAN);
EXPECT_TRUE(value.IsList()); EXPECT_TRUE(value.IsVector());
EXPECT_EQ(value.AsList().size(), 3); EXPECT_EQ(value.GetAsVector().size(), 3);
EXPECT_TRUE(value.AsList().at(1).IsBool()); EXPECT_TRUE(value.GetAsVector().at(1).IsBool());
EXPECT_FALSE(value.AsList().at(1).AsBool()); EXPECT_FALSE(value.GetAsVector().at(1).GetAsBool());
} }
} // namespace caosdb::entity } // namespace caosdb::entity
...@@ -94,11 +94,11 @@ TEST_F(test_properties, retrieve_unit) { ...@@ -94,11 +94,11 @@ TEST_F(test_properties, retrieve_unit) {
EXPECT_FALSE(retrieval->GetStatus().IsError()); EXPECT_FALSE(retrieval->GetStatus().IsError());
const auto &same_property = retrieval->GetResultSet().at(0); const auto &same_property = retrieval->GetResultSet().at(0);
EXPECT_EQ(same_property.GetDataType().AsAtomic(), AtomicDataType::DOUBLE); EXPECT_EQ(same_property.GetDataType().GetAsAtomic(), AtomicDataType::DOUBLE);
EXPECT_EQ(same_property.GetUnit(), "V"); EXPECT_EQ(same_property.GetUnit(), "V");
const auto &same_record_type = retrieval->GetResultSet().at(1); const auto &same_record_type = retrieval->GetResultSet().at(1);
EXPECT_EQ(same_record_type.GetProperties().at(0).GetDataType().AsAtomic(), EXPECT_EQ(same_record_type.GetProperties().at(0).GetDataType().GetAsAtomic(),
AtomicDataType::DOUBLE); AtomicDataType::DOUBLE);
EXPECT_EQ(same_record_type.GetProperties().at(0).GetUnit(), "V"); EXPECT_EQ(same_record_type.GetProperties().at(0).GetUnit(), "V");
} }
......
...@@ -132,22 +132,22 @@ protected: ...@@ -132,22 +132,22 @@ protected:
template <> template <>
auto test_transaction::getValueAs<double>(const Value &value) -> double { auto test_transaction::getValueAs<double>(const Value &value) -> double {
return value.AsDouble(); return value.GetAsDouble();
} }
template <> template <>
auto test_transaction::getValueAs<int64_t>(const Value &value) -> int64_t { auto test_transaction::getValueAs<int64_t>(const Value &value) -> int64_t {
return value.AsInteger(); return value.GetAsInt64();
} }
template <> template <>
auto test_transaction::getValueAs<int32_t>(const Value &value) -> int32_t { auto test_transaction::getValueAs<int32_t>(const Value &value) -> int32_t {
return static_cast<int32_t>(value.AsInteger()); return static_cast<int32_t>(value.GetAsInt64());
} }
template <> template <>
auto test_transaction::getValueAs<bool>(const Value &value) -> bool { auto test_transaction::getValueAs<bool>(const Value &value) -> bool {
return value.AsBool(); return value.GetAsBool();
} }
/* /*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment