Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
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);
}