b7109a108d4c2c84117f7c9e6bba34a72abe1fde
[profile/ivi/eobj.git] / src / tests / mixin / main.c
1 #include "Eo.h"
2 #include "simple.h"
3 #include "mixin.h"
4 #include "mixin2.h"
5 #include "mixin3.h"
6
7 #include "../eunit_tests.h"
8
9 int
10 main(int argc, char *argv[])
11 {
12    (void) argc;
13    (void) argv;
14    eo_init();
15
16    Eo *obj = eo_add(SIMPLE_CLASS, NULL);
17
18    eo_do(obj, simple_a_set(1), simple_b_set(2));
19
20    int a, b, sum = 0;
21    eo_do(obj, simple_a_get(&a), simple_b_get(&b),  mixin_ab_sum_get(&sum));
22    fail_if(sum != a + b + 2); /* 2 for the two mixins... */
23
24    eo_do(obj, mixin_ab_sum_get(&sum), mixin_ab_sum_get(&sum));
25
26    Mixin2_Public_Data *pd2 = eo_data_get(obj, MIXIN2_CLASS);
27    fail_if(pd2->count != 6);
28
29    Mixin3_Public_Data *pd3 = eo_data_get(obj, MIXIN3_CLASS);
30    fail_if(pd3->count != 9);
31
32    eo_unref(obj);
33    eo_shutdown();
34    return 0;
35 }
36