2
* internal unit tests for the uTouch GEIS v2.0 subscription module
7
#include "libutouch-geis/geis_subscription.h"
12
static GeisSubBag g_sub_bag;
13
static const GeisString test_sub_string = "zot!";
19
g_geis = geis_new("geis-test-fixture", NULL);
20
g_sub_bag = geis_subscription_bag_new(1);
23
/* fixture teardown */
27
geis_subscription_bag_delete(g_sub_bag);
32
/* verify bag construction/destruction */
33
START_TEST(construction)
35
GeisSubBag bag = geis_subscription_bag_new(1);
36
fail_unless(bag != NULL,
37
"failed to create subscription bag");
38
fail_unless(geis_subscription_bag_count(bag) == 0,
40
geis_subscription_bag_delete(bag);
45
/* verify bag insertion */
48
GeisSubscription sub = geis_subscription_new(g_geis,
50
GEIS_SUBSCRIPTION_NONE);
51
geis_subscription_bag_insert(g_sub_bag, sub);
52
fail_unless(geis_subscription_bag_count(g_sub_bag) == 1,
53
"unexpected bag size after insertion");
58
/* verify bag find operation (positive results) */
59
START_TEST(find_success)
61
GeisSubscription sub2;
62
GeisSubscription sub1 = geis_subscription_new(g_geis,
64
GEIS_SUBSCRIPTION_NONE);
65
GeisSize id = geis_subscription_bag_insert(g_sub_bag, sub1);
66
sub2 = geis_subscription_bag_find(g_sub_bag, id);
67
fail_if(sub2 == NULL, "expected instance not found");
68
fail_unless(0 == strcmp(geis_subscription_name(sub1),
69
geis_subscription_name(sub2)),
70
"unexpected subscription name returned");
75
/* verify bag find operation (negative results) */
78
GeisSubscription sub = geis_subscription_bag_find(g_sub_bag, 999);
79
fail_unless(sub == NULL, "unexpected instance found");
86
make_subscription_suite()
88
Suite *s = suite_create("utouch-geis2-subscriptions");
90
TCase *create = tcase_create("sub-bag-creation");
91
tcase_add_test(create, construction);
92
suite_add_tcase(s, create);
94
TCase *usage = tcase_create("sub-bag-usage");
95
tcase_add_checked_fixture(usage, construct_bag, destroy_bag);
96
tcase_add_test(usage, insertion);
97
tcase_add_test(usage, find_success);
98
tcase_add_test(usage, find_fail);
99
suite_add_tcase(s, usage);