static void test_lookup_promise_type_global_commons(void) { const PromiseTypeSyntax *s = PromiseTypeSyntaxGet("*", "*"); assert_true(s); assert_string_equal("*", s->bundle_type); assert_string_equal("*", s->promise_type); }
static void test_lookup_constraint_edit_xml_set_attribute_attribute_value(void) { const PromiseTypeSyntax *s = PromiseTypeSyntaxGet("edit_xml", "set_attribute"); assert_true(s); assert_string_equal("set_attribute", s->promise_type); const ConstraintSyntax *x = PromiseTypeSyntaxGetConstraintSyntax(s, "attribute_value"); assert_true(x); assert_string_equal("attribute_value", x->lval); }
static JsonElement *PromiseTypesToJson(void) { JsonElement *promise_types = JsonObjectCreate(50); const PromiseTypeSyntax *global_promise_type = PromiseTypeSyntaxGet("*", "*"); for (int module_index = 0; module_index < CF3_MODULES; module_index++) { for (int promise_type_index = 0; CF_ALL_PROMISE_TYPES[module_index][promise_type_index].promise_type; promise_type_index++) { const PromiseTypeSyntax *promise_type_syntax = &CF_ALL_PROMISE_TYPES[module_index][promise_type_index]; // skip global and bundle-local common constraints if (strcmp("*", promise_type_syntax->promise_type) == 0) { continue; } if (promise_type_syntax->status == SYNTAX_STATUS_REMOVED) { continue; } JsonElement *promise_type = JsonObjectGet(promise_types, promise_type_syntax->promise_type); if (!promise_type) { promise_type = JsonPromiseTypeNew(promise_type_syntax->status); JsonObjectAppendObject(promise_types, promise_type_syntax->promise_type, promise_type); } assert(promise_type); JsonElement *attributes = JsonObjectGet(promise_type, "attributes"); assert(attributes); for (int i = 0; promise_type_syntax->constraints[i].lval; i++) { const ConstraintSyntax *constraint_syntax = &promise_type_syntax->constraints[i]; JsonElement *json_constraint = ConstraintSyntaxToJson(constraint_syntax); JsonObjectAppendString(json_constraint, "visibility", "promiseType"); JsonObjectAppendObject(attributes, constraint_syntax->lval, json_constraint); } // append bundle common constraints const PromiseTypeSyntax *bundle_promise_type = PromiseTypeSyntaxGet(promise_type_syntax->bundle_type, "*"); if (strcmp("*", bundle_promise_type->bundle_type) != 0) { for (int i = 0; bundle_promise_type->constraints[i].lval; i++) { const ConstraintSyntax *constraint_syntax = &bundle_promise_type->constraints[i]; JsonElement *json_constraint = ConstraintSyntaxToJson(constraint_syntax); JsonObjectAppendString(json_constraint, "visibility", "bundle"); JsonObjectAppendObject(attributes, constraint_syntax->lval, json_constraint); } } // append global common constraints for (int i = 0; global_promise_type->constraints[i].lval; i++) { const ConstraintSyntax *constraint_syntax = &global_promise_type->constraints[i]; JsonElement *json_constraint = ConstraintSyntaxToJson(constraint_syntax); JsonObjectAppendString(json_constraint, "visibility", "global"); JsonObjectAppendObject(attributes, constraint_syntax->lval, json_constraint); } } } return promise_types; }
static void test_lookup_promise_type_agent_vars(void) { const PromiseTypeSyntax *s = PromiseTypeSyntaxGet("agent", "vars"); assert_true(s); assert_string_equal("vars", s->promise_type); }
static void test_lookup_promise_type_edit_line_delete_lines(void) { const PromiseTypeSyntax *s = PromiseTypeSyntaxGet("edit_line", "delete_lines"); assert_true(s); assert_string_equal("delete_lines", s->promise_type); }
static void test_lookup_promise_type_edit_xml_build_xpath(void) { const PromiseTypeSyntax *s = PromiseTypeSyntaxGet("edit_xml", "build_xpath"); assert_true(s); assert_string_equal("build_xpath", s->promise_type); }