Exemplo n.º 1
0
END_TEST

START_TEST (key_anchor)
{
    document_model *model = anchor_setup(KEY_ANCHOR_YAML);
    node *root = model_document_root(model, 0);

    reset_errno();
    node *one = mapping_get(root, (uint8_t *)"one", 3ul);
    assert_noerr();
    assert_not_null(one);
    assert_node_kind(one, SEQUENCE);
    assert_node_size(one, 2);

    reset_errno();
    node *alias1 = sequence_get(one, 1);
    assert_noerr();
    assert_not_null(alias1);
    assert_node_kind(alias1, ALIAS);

    node *one_1 = alias_target(alias1);
    assert_noerr();
    assert_not_null(one_1);
    assert_node_kind(one_1, SCALAR);
    assert_scalar_kind(one_1, SCALAR_STRING);
    assert_scalar_value(one_1, "one");
    reset_errno();

    node *alias2 = mapping_get(root, (uint8_t *)"two", 3ul);
    assert_noerr();
    assert_not_null(alias2);

    node *two = alias_target(alias2);
    assert_node_kind(two, SCALAR);
    assert_scalar_kind(two, SCALAR_STRING);
    assert_scalar_value(two, "one");
}
Exemplo n.º 2
0
END_TEST

START_TEST (duplicate_warn)
{
    document_model *model = duplicate_setup(DUPE_WARN);
    node *root = model_document_root(model, 0);
    node *one = mapping_get(root, (uint8_t *)"one", 3ul);
    assert_noerr();
    assert_not_null(one);
    assert_node_kind(one, SCALAR);
    assert_scalar_value(one, "bar");
    assert_scalar_kind(one, SCALAR_STRING);

    model_free(model);
}
Exemplo n.º 3
0
END_TEST

START_TEST (scalar_type)
{
    reset_errno();
    Node *r = model_document_root(model, 0);
    assert_noerr();
    assert_not_null(r);
    assert_node_kind(r, MAPPING);

    reset_errno();
    Node *s = mapping_get(mapping(r), (uint8_t *)"two", 3ul);
    assert_noerr();
    assert_not_null(s);
    assert_node_kind(s, SCALAR);
    assert_scalar_value((s), "foo2");
}
Exemplo n.º 4
0
END_TEST

static void assert_model_state(loader_context *loader, document_model *model)
{
    assert_int_eq(LOADER_SUCCESS, loader_status(loader));
    assert_not_null(model);
    assert_uint_eq(1, model_document_count(model));

    reset_errno();
    node *root = model_document_root(model, 0);
    assert_noerr();
    assert_not_null(root);
    
    assert_node_kind(root, MAPPING);
    assert_node_size(root, 5);

    reset_errno();
    node *one = mapping_get(root, (uint8_t *)"one", 3ul);
    assert_noerr();
    assert_not_null(one);
    assert_node_kind(one, SEQUENCE);
    assert_node_size(one, 2);

    reset_errno();
    node *one_0 = sequence_get(one, 0);
    assert_noerr();
    assert_node_kind(one_0, SCALAR);
    assert_scalar_value(one_0, "foo1");
    assert_scalar_kind(one_0, SCALAR_STRING);
    reset_errno();
    node *one_1 = sequence_get(one, 1);
    assert_noerr();
    assert_node_kind(one_1, SCALAR);
    assert_scalar_value(one_1, "bar1");
    assert_scalar_kind(one_1, SCALAR_STRING);

    reset_errno();
    node *two = mapping_get(root, (uint8_t *)"two", 3ul);
    assert_noerr();
    assert_not_null(two);
    assert_node_kind(two, SCALAR);
    assert_scalar_value(two, "foo2");
    assert_scalar_kind(two, SCALAR_STRING);

    reset_errno();
    node *three = mapping_get(root, (uint8_t *)"three", 5ul);
    assert_noerr();
    assert_not_null(three);
    assert_node_kind(three, SCALAR);
    assert_scalar_value(three, "null");
    assert_scalar_kind(three, SCALAR_NULL);

    reset_errno();
    node *four = mapping_get(root, (uint8_t *)"four", 4ul);
    assert_noerr();
    assert_not_null(four);
    assert_node_kind(four, SEQUENCE);

    reset_errno();
    node *four_0 = sequence_get(four, 0);
    assert_noerr();
    assert_node_kind(four_0, SCALAR);
    assert_scalar_value(four_0, "true");
    assert_scalar_kind(four_0, SCALAR_BOOLEAN);
    assert_true(scalar_boolean_is_true(four_0));
    assert_false(scalar_boolean_is_false(four_0));
    reset_errno();
    node *four_1 = sequence_get(four, 1);
    assert_noerr();
    assert_node_kind(four_0, SCALAR);
    assert_scalar_value(four_1, "false");
    assert_scalar_kind(four_1, SCALAR_BOOLEAN);
    assert_true(scalar_boolean_is_false(four_1));
    assert_false(scalar_boolean_is_true(four_1));

    reset_errno();
    node *five = mapping_get(root, (uint8_t *)"five", 4ul);
    assert_noerr();
    assert_not_null(five);
    assert_node_kind(five, SEQUENCE);
    node *five_0 = sequence_get(five, 0);
    assert_noerr();
    assert_node_kind(five_0, SCALAR);
    assert_scalar_value(five_0, "1.5");
    assert_scalar_kind(five_0, SCALAR_REAL);
    reset_errno();
    node *five_1 = sequence_get(five, 1);
    assert_noerr();
    assert_node_kind(five_1, SCALAR);
    assert_scalar_value(five_1, "42");
    assert_scalar_kind(five_1, SCALAR_INTEGER);
    reset_errno();
    node *five_2 = sequence_get(five, 2);
    assert_noerr();
    assert_node_kind(five_2, SCALAR);
    assert_scalar_value(five_2, "1978-07-26 10:15");
    assert_scalar_kind(five_2, SCALAR_TIMESTAMP);
    reset_errno();
}