test: Add tests for isd_get_commercial_credit()
[libisds.git] / test / offline / isds-eventstring2event.c
blob9bbe744fd3b8af4591bd804e22b8a3b9512079cf
1 #include "../test.h"
2 #include "isds.c"
4 static int test_eventstring2event(const xmlChar *string, isds_error error,
5 const struct isds_event *correct_event, struct isds_event *new_event) {
6 isds_error err;
8 err = eventstring2event(string, new_event);
10 if (error != err)
11 FAIL_TEST("eventstring2event() returned wrong error code: "
12 "expected=%s, got=%s",
13 isds_strerror(error), isds_strerror(err));
14 if (err != IE_SUCCESS)
15 PASS_TEST;
17 if (new_event && correct_event) {
18 if (!correct_event->time && new_event->time)
19 FAIL_TEST("Returned event time is not NULL as expected");
20 if (correct_event->time) {
21 if (!new_event->time)
22 FAIL_TEST("Returned event time is NULL as not expected");
23 if (correct_event->time->tv_sec != new_event->time->tv_sec)
24 FAIL_TEST("Returned event time differs in tv_sec: "
25 "expected=%d, got=%d",
26 correct_event->time->tv_sec, new_event->time->tv_sec);
27 if (correct_event->time->tv_usec != new_event->time->tv_usec)
28 FAIL_TEST("Returned event time differs in tv_usec: "
29 "expected=%d, got=%d",
30 correct_event->time->tv_usec, new_event->time->tv_usec);
33 if (!correct_event->type && new_event->type)
34 FAIL_TEST("Returned event type is not NULL as expected");
35 if (correct_event->type) {
36 if (!new_event->type)
37 FAIL_TEST("Returned event type is NULL as not expected");
38 if (*correct_event->type != *new_event->type)
39 FAIL_TEST("Returned wrong event type: expected=%d, got=%d",
40 *correct_event->type, *new_event->type);
43 if (!correct_event->description && new_event->description)
44 FAIL_TEST("Returned event description is not NUTLL as expected");
45 if (correct_event->description) {
46 if (!new_event->description)
47 FAIL_TEST("Returned event description is NULL as "
48 "not expected");
49 if (strcmp(correct_event->description, new_event->description))
50 FAIL_TEST("Returned wrong event description: "
51 "expected=`%s', got=`%s'",
52 correct_event->description, new_event->description);
56 PASS_TEST;
60 int main(int argc, char **argv) {
61 INIT_TEST("eventstring to event conversion");
63 xmlChar *input = NULL;
64 isds_event_type event_type;
65 struct isds_event event;
66 struct isds_event output = {
67 .time = NULL, .type = NULL, .description = NULL
71 isds_init();
73 /* Known event prefixes */
74 input = BAD_CAST "EV0: some text";
75 event.time = NULL;
76 event_type = EVENT_ENTERED_SYSTEM;
77 event.type = &event_type;
78 event.description = "some text";
79 TEST((char*)input, test_eventstring2event, input,
80 IE_SUCCESS, &event, &output);
82 input = BAD_CAST "EV1: some text";
83 event.time = NULL;
84 event_type = EVENT_ACCEPTED_BY_RECIPIENT;
85 event.type = &event_type;
86 event.description = "some text";
87 TEST((char*)input, test_eventstring2event, input,
88 IE_SUCCESS, &event, &output);
90 input = BAD_CAST "EV2: some text";
91 event.time = NULL;
92 event_type = EVENT_ACCEPTED_BY_FICTION;
93 event.type = &event_type;
94 event.description = "some text";
95 TEST((char*)input, test_eventstring2event, input,
96 IE_SUCCESS, &event, &output);
98 input = BAD_CAST "EV3: some text";
99 event.time = NULL;
100 event_type = EVENT_UNDELIVERABLE;
101 event.type = &event_type;
102 event.description = "some text";
103 TEST((char*)input, test_eventstring2event, input,
104 IE_SUCCESS, &event, &output);
106 input = BAD_CAST "EV4: some text";
107 event.time = NULL;
108 event_type = EVENT_COMMERCIAL_ACCEPTED;
109 event.type = &event_type;
110 event.description = "some text";
111 TEST((char*)input, test_eventstring2event, input,
112 IE_SUCCESS, &event, &output);
114 input = BAD_CAST "EV5: some text";
115 event.time = NULL;
116 event_type = EVENT_DELIVERED;
117 event.type = &event_type;
118 event.description = "some text";
119 TEST((char*)input, test_eventstring2event, input,
120 IE_SUCCESS, &event, &output);
122 input = BAD_CAST "EV11: some text";
123 event.time = NULL;
124 event_type = EVENT_PRIMARY_LOGIN;
125 event.type = &event_type;
126 event.description = "some text";
127 TEST((char*)input, test_eventstring2event, input,
128 IE_SUCCESS, &event, &output);
130 input = BAD_CAST "EV12: some text";
131 event.time = NULL;
132 event_type = EVENT_ENTRUSTED_LOGIN;
133 event.type = &event_type;
134 event.description = "some text";
135 TEST((char*)input, test_eventstring2event, input,
136 IE_SUCCESS, &event, &output);
138 input = BAD_CAST "EV13: some text";
139 event.time = NULL;
140 event_type = EVENT_SYSCERT_LOGIN;
141 event.type = &event_type;
142 event.description = "some text";
143 TEST((char*)input, test_eventstring2event, input,
144 IE_SUCCESS, &event, &output);
146 /* Unknown event prefixes */
147 input = BAD_CAST "EV-1: unknown event";
148 event.time = NULL;
149 event_type = EVENT_UKNOWN;
150 event.type = &event_type;
151 event.description = (char *) input;
152 TEST((char*)input, test_eventstring2event, input,
153 IE_SUCCESS, &event, &output);
155 input = BAD_CAST "EV6: intermediate undefined event";
156 event.time = NULL;
157 event_type = EVENT_UKNOWN;
158 event.type = &event_type;
159 event.description = (char *) input;
160 TEST((char*)input, test_eventstring2event, input,
161 IE_SUCCESS, &event, &output);
163 input = BAD_CAST "EV10: intermediate undefined event";
164 event.time = NULL;
165 event_type = EVENT_UKNOWN;
166 event.type = &event_type;
167 event.description = (char *) input;
168 TEST((char*)input, test_eventstring2event, input,
169 IE_SUCCESS, &event, &output);
171 input = BAD_CAST "EV14: out of range event";
172 event.time = NULL;
173 event_type = EVENT_UKNOWN;
174 event.type = &event_type;
175 event.description = (char *) input;
176 TEST((char*)input, test_eventstring2event, input,
177 IE_SUCCESS, &event, &output);
179 /* Other valid cases */
180 event.time = NULL;
181 event_type = EVENT_UKNOWN;
182 event.type = &event_type;
183 event.description = "";
184 TEST("Empty input", test_eventstring2event, BAD_CAST "",
185 IE_SUCCESS, &event, &output);
187 /* Invalid invocations */
188 TEST("NULL input", test_eventstring2event, NULL,
189 IE_INVAL, NULL, &output);
191 input = BAD_CAST "EV1: some text";
192 event.time = NULL;
193 event_type = EVENT_ACCEPTED_BY_RECIPIENT;
194 event.type = &event_type;
195 event.description = "some text";
196 TEST("NULL output", test_eventstring2event, input,
197 IE_INVAL, &event, NULL);
199 isds_cleanup();
200 SUM_TEST();