~boulabiar/geis/geis2-add-dbus-backend

« back to all changes in this revision

Viewing changes to testsuite/libutouch-geis/check_subscription.c

  • Committer: Stephen M. Webb
  • Date: 2010-12-01 03:16:39 UTC
  • mfrom: (87.1.20 geis2)
  • Revision ID: stephen.webb@canonical.com-20101201031639-zxv6irfswhicpaaf
Aded GEIS v2.0 Subscription construction and accessors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * internal unit tests for the uTouch GEIS v2.0 subscription module
 
3
 */
 
4
#include <check.h>
 
5
 
 
6
#include "geis/geis.h"
 
7
#include "libutouch-geis/geis_subscription.h"
 
8
 
 
9
 
 
10
/* fixtures */
 
11
static Geis g_geis;
 
12
static GeisSubBag g_sub_bag;
 
13
static const GeisString test_sub_string = "zot!";
 
14
 
 
15
/* fixture setup */
 
16
static void
 
17
construct_bag()
 
18
{
 
19
  g_geis = geis_new("geis-test-fixture", NULL);
 
20
  g_sub_bag = geis_subscription_bag_new(1);
 
21
}
 
22
 
 
23
/* fixture teardown */
 
24
static void
 
25
destroy_bag()
 
26
{
 
27
  geis_subscription_bag_delete(g_sub_bag);
 
28
  geis_delete(g_geis);
 
29
}
 
30
 
 
31
 
 
32
/* verify bag construction/destruction */
 
33
START_TEST(construction)
 
34
{
 
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,
 
39
              "unexpected size");
 
40
  geis_subscription_bag_delete(bag);
 
41
}
 
42
END_TEST
 
43
 
 
44
 
 
45
/* verify bag insertion */
 
46
START_TEST(insertion)
 
47
{
 
48
  GeisSubscription sub = geis_subscription_new(g_geis,
 
49
                                               "test-sub",
 
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");
 
54
}
 
55
END_TEST
 
56
 
 
57
 
 
58
/* verify bag find operation (positive results) */
 
59
START_TEST(find_success)
 
60
{
 
61
  GeisSubscription sub2;
 
62
  GeisSubscription sub1 = geis_subscription_new(g_geis,
 
63
                                                "test-sub",
 
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");
 
71
}
 
72
END_TEST
 
73
 
 
74
 
 
75
/* verify bag find operation (negative results) */
 
76
START_TEST(find_fail)
 
77
{
 
78
  GeisSubscription sub = geis_subscription_bag_find(g_sub_bag, 999);
 
79
  fail_unless(sub == NULL, "unexpected instance found");
 
80
}
 
81
END_TEST
 
82
 
 
83
 
 
84
/* boilerplate */
 
85
Suite *
 
86
make_subscription_suite()
 
87
{
 
88
  Suite *s = suite_create("utouch-geis2-subscriptions");
 
89
 
 
90
  TCase *create = tcase_create("sub-bag-creation");
 
91
  tcase_add_test(create, construction);
 
92
  suite_add_tcase(s, create);
 
93
 
 
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);
 
100
 
 
101
  return s;
 
102
}
 
103