65 #include <amxc/amxc.h>
66 #include <amxp/amxp_signal.h>
67 #include <amxp/amxp_slot.h>
78 #include <amxc/amxc_macros.h>
93 assert_int_equal(
amxd_param_new(¶m,
"templ_param", AMXC_VAR_ID_CSTRING), 0);
96 assert_int_equal(
amxd_param_new(¶m,
"inst_param", AMXC_VAR_ID_BOOL), 0);
98 assert_int_equal(
amxd_param_new(¶m,
"param", AMXC_VAR_ID_UINT32), 0);
102 assert_int_equal(
amxd_param_new(¶m,
"protected_param", AMXC_VAR_ID_UINT32), 0);
106 assert_int_equal(
amxd_param_new(¶m,
"child_param", AMXC_VAR_ID_CSTRING), 0);
109 assert_int_equal(
amxd_param_new(¶m,
"child_param2", AMXC_VAR_ID_BOOL), 0);
111 assert_int_equal(
amxd_param_new(¶m,
"child_param3", AMXC_VAR_ID_UINT64), 0);
122 amxc_var_t* params = NULL;
124 amxc_var_init(&args);
125 amxc_var_init(&retval);
130 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
134 amxc_var_set_type(&args, AMXC_VAR_ID_BOOL);
136 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
138 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
140 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
142 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
145 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
147 params = amxc_var_add_key(amxc_llist_t, &args,
"parameters", NULL);
148 amxc_var_add(cstring_t, params,
"protected_param");
149 amxc_var_add(cstring_t, params,
"param");
152 amxc_var_clean(&args);
153 amxc_var_clean(&retval);
159 amxc_var_t* parameters = NULL;
160 amxc_string_t filter;
162 amxc_string_init(&filter, 0);
163 amxc_var_init(&args);
165 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
166 parameters = amxc_var_add_key(amxc_llist_t, &args,
"parameters", NULL);
167 amxc_var_add(cstring_t, parameters,
"templ_param");
169 assert_string_equal(amxc_string_get(&filter, 0),
"name in [ 'templ_param' ]");
171 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
172 amxc_var_add_key(uint32_t, &args,
"attributes", 14);
174 assert_string_equal(amxc_string_get(&filter, 0),
"name in [ 'templ_param' ] && attributes.instance == true && attributes.private == true && attributes.read-only == true");
176 amxc_string_reset(&filter);
177 amxc_var_clean(&args);
179 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
180 amxc_var_add_key(uint32_t, &args,
"attributes", 14);
182 assert_string_equal(amxc_string_get(&filter, 0),
"attributes.instance == true && attributes.private == true && attributes.read-only == true");
184 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
185 parameters = amxc_var_add_key(amxc_llist_t, &args,
"parameters", NULL);
186 amxc_var_add(cstring_t, parameters,
"templ_param");
188 assert_string_equal(amxc_string_get(&filter, 0),
"attributes.instance == true && attributes.private == true && attributes.read-only == true && name in ['templ_param' ]");
190 amxc_var_clean(&args);
191 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
192 amxc_var_add_key(cstring_t, &args,
"filter",
"name == 'templ_param'");
194 assert_string_equal(amxc_string_get(&filter, 0),
"name == 'templ_param'");
196 amxc_string_clean(&filter);
197 amxc_var_clean(&args);
206 amxc_var_init(&args);
207 amxc_var_init(&retval);
213 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
217 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
223 amxc_var_clean(&args);
224 amxc_var_clean(&retval);
Ambiorix Data Model Default actions header file.
amxd_status_t amxd_action_object_read(amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
amxd_status_t amxd_action_object_read_filter(amxc_string_t *filter, const amxc_var_t *args)
Ambiorix Data Model API header file.
amxd_status_t amxd_dm_invoke_action(amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval)
Ambiorix Data Model RPC methods API header file.
Ambiorix Data Model API header file.
amxd_status_t amxd_object_add_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn, void *priv)
amxd_status_t amxd_object_remove_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn)
amxd_status_t amxd_param_new(amxd_param_t **param, const char *name, const uint32_t type)
amxd_status_t amxd_param_set_attr(amxd_param_t *param, const amxd_pattr_id_t attr, const bool enable)
amxd_status_t amxd_dm_add_root_object(amxd_dm_t *const dm, amxd_object_t *const object)
Adds an object to the root of the data model.
amxd_status_t amxd_dm_init(amxd_dm_t *dm)
Initializes a data model structure.
void amxd_dm_clean(amxd_dm_t *dm)
Cleans a data model structure.
amxd_status_t amxd_object_add_object(amxd_object_t *const parent, amxd_object_t *const child)
Adds an object in the data model tree.
amxd_status_t amxd_object_add_param(amxd_object_t *const object, amxd_param_t *const param)
Adds a parameter definition to an object.
amxd_status_t amxd_object_new_instance(amxd_object_t **object, amxd_object_t *templ, const char *name, uint32_t index, amxc_var_t *values)
Data model object constructor function.
amxd_status_t amxd_object_new(amxd_object_t **object, const amxd_object_type_t type, const char *name)
Data model object constructor function.
void test_amxd_object_read_with_cb(UNUSED void **state)
void test_amxd_object_read(UNUSED void **state)
void test_amxd_object_build_read_filter(UNUSED void **state)
static amxd_object_t * test_build_dm(void)