diff --git a/include/ccaosdb.h b/include/ccaosdb.h index 4704c22ddd2235bbbe979198e48b45a43a4a7d6c..91ca1fad2fe843e3ea8e8f4cd11cf901eb4b6247 100644 --- a/include/ccaosdb.h +++ b/include/ccaosdb.h @@ -419,6 +419,12 @@ int caosdb_entity_message_get_code(caosdb_entity_message *message, int *out); int caosdb_entity_message_get_description(caosdb_entity_message *message, char **out); // TODO(fspreck) getters for value and datatypes +int caosdb_entity_value_is_null(caosdb_entity_value *value, bool *out); +int caosdb_entity_value_is_string(caosdb_entity_value *value, bool *out); +int caosdb_entity_value_is_double(caosdb_entity_value *value, bool *out); +int caosdb_entity_value_is_integer(caosdb_entity_value *value, bool *out); +int caosdb_entity_value_is_bool(caosdb_entity_value *value, bool *out); +int caosdb_entity_value_is_list(caosdb_entity_value *value, bool *out); // CONSTRUCTORS AND DESTRUCTORS int caosdb_entity_create_entity(caosdb_entity_entity *out); @@ -478,7 +484,7 @@ int caosdb_entity_property_set_value(caosdb_entity_property *property, caosdb_en int caosdb_entity_parent_set_id(caosdb_entity_parent *parent, const char *id); int caosdb_entity_parent_set_name(caosdb_entity_parent *parent, const char *name); -// TODO(fspreck) setters for value and datatype +// TODO(fspreck) setters for datatype #ifdef __cplusplus } diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp index fce4f969779fb1dbb6ee8cdd00642347b3b1e913..2b10c7ac17f1a89b1157b0a050252b8e447a5e57 100644 --- a/test/test_ccaosdb.cpp +++ b/test/test_ccaosdb.cpp @@ -145,6 +145,26 @@ TEST_F(test_ccaosdb, test_value) { return_code = caosdb_entity_create_double_value(&double_value, 2.7); EXPECT_EQ(return_code, 0); + caosdb_entity_value string_list_value; + const char *string_values[] = {"a", "b", "c"}; // NOLINT + return_code = caosdb_entity_create_string_list_value(&string_list_value, string_values, 3); + EXPECT_EQ(return_code, 0); + + caosdb_entity_value int_list_value; + const int64_t int_values[] = {1, 2, 3}; // NOLINT + return_code = caosdb_entity_create_int_list_value(&int_list_value, int_values, 3); + EXPECT_EQ(return_code, 0); + + caosdb_entity_value double_list_value; + const double double_values[] = {1.1, 2.2, 3.3}; // NOLINT + return_code = caosdb_entity_create_double_list_value(&double_list_value, double_values, 3); + EXPECT_EQ(return_code, 0); + + caosdb_entity_value bool_list_value; + const bool bool_values[] = {true, false, false}; // NOLINT + return_code = caosdb_entity_create_bool_list_value(&bool_list_value, bool_values, 3); + EXPECT_EQ(return_code, 0); + // TODO(fspreck) Test is... and as... functions return_code = caosdb_entity_delete_value(&string_value); @@ -155,6 +175,14 @@ TEST_F(test_ccaosdb, test_value) { EXPECT_EQ(return_code, 0); return_code = caosdb_entity_delete_value(&double_value); EXPECT_EQ(return_code, 0); + return_code = caosdb_entity_delete_value(&string_list_value); + EXPECT_EQ(return_code, 0); + return_code = caosdb_entity_delete_value(&int_list_value); + EXPECT_EQ(return_code, 0); + return_code = caosdb_entity_delete_value(&double_list_value); + EXPECT_EQ(return_code, 0); + return_code = caosdb_entity_delete_value(&bool_list_value); + EXPECT_EQ(return_code, 0); } TEST_F(test_ccaosdb, test_entity) {