summaryrefslogtreecommitdiffstats
path: root/guththila/tests/test_attribute.c
diff options
context:
space:
mode:
Diffstat (limited to 'guththila/tests/test_attribute.c')
-rw-r--r--guththila/tests/test_attribute.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/guththila/tests/test_attribute.c b/guththila/tests/test_attribute.c
new file mode 100644
index 0000000..bd6c4b5
--- /dev/null
+++ b/guththila/tests/test_attribute.c
@@ -0,0 +1,84 @@
+#include <guththila.h>
+#include <check.h>
+#include "test.h"
+
+START_TEST(test_attribute)
+{
+ int count = 0;;
+ int c = 0;
+ guththila_attribute_t *att;
+ red = guththila_reader_create_for_file(env, "resources/om/evaluate.xml");
+ parser = guththila_create(env, red);
+ guththila_read(env, parser);
+ c = guththila_next(env, parser);
+ while (!count)
+ {
+ c = guththila_next(env, parser);
+ count = guththila_get_attribute_count(env, parser);
+ if (count)
+ att = guththila_get_attribute(env, parser);
+ }
+ fail_if(count == 0, "guththila attribute count failed");
+ fail_unless(!strcmp
+ (guththila_get_attribute_name(env, parser, att), "color"),
+ "guththila attribute name failed");
+ fail_unless(!strcmp
+ (guththila_get_attribute_value(env, parser, att), "brown"),
+ "guththila attribute value failed");
+}
+
+END_TEST
+START_TEST(
+ test_attribute_prefix)
+{
+ int count = 0;
+ ;
+ int c = 0;
+ guththila_attribute_t *att;
+ red = guththila_reader_create_for_file(env, "resources/soap/soapmessage.xml");
+ parser = guththila_create(env, red);
+ guththila_read(env, parser);
+ c = guththila_next(env, parser);
+ while(!count)
+ {
+ c = guththila_next(env, parser);
+ count = guththila_get_attribute_count(env, parser);
+ if(count)
+ att = guththila_get_attribute(env, parser);
+ }
+ fail_if(count == 0, "guththila attribute count failed");
+ fail_unless(!strcmp(guththila_get_attribute_prefix(env, parser, att), "soapenv"),
+ "guththila attribute count failed");
+ fail_unless(!strcmp(guththila_get_attribute_name(env, parser, att), "mustUnderstand"),
+ "guththila attribute count failed");
+ fail_unless(!strcmp(guththila_get_attribute_value(env, parser, att), "0"),
+ "guththila attribute count failed");
+ count = 0;
+ while(!count)
+ {
+ c = guththila_next(env, parser);
+ count = guththila_get_attribute_count(env, parser);
+ if(count)
+ att = guththila_get_attribute(env, parser);
+ }
+ fail_unless(!strcmp(guththila_get_attribute_prefix(env, parser, att), "soapenv"),
+ "guththila attribute count failed");
+ fail_unless(!strcmp(guththila_get_attribute_name(env, parser, att), "mustUnderstand"),
+ "guththila attribute count failed");
+ fail_if(!strcmp(guththila_get_attribute_value(env, parser, att), "1"),
+ "guththila attribute count failed");
+}
+END_TEST Suite *
+guththila_attribute_suite(
+ void)
+{
+ Suite *s = suite_create("Guththila_attribute");
+
+ /* Core test case */
+ TCase *tc_core = tcase_create("attribute");
+ tcase_add_checked_fixture(tc_core, setup, teardown);
+ tcase_add_test(tc_core, test_attribute);
+ tcase_add_test(tc_core, test_attribute_prefix);
+ suite_add_tcase(s, tc_core);
+ return s;
+}