1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include "../test.h"
#include "isds.c"
static int test_string2sendertype(const xmlChar *string, isds_error error,
isds_sender_type *type) {
isds_error err;
isds_sender_type new_type = 0;
err = string2isds_sender_type(string, (type) ? &new_type : NULL);
if (err != error)
FAIL_TEST("string2isds_sender_type() returend wrong exit code: "
"expected=%s, got=%s",
isds_strerror(error), isds_strerror(err));
if (err != IE_SUCCESS)
PASS_TEST;
if (type && *type != new_type)
FAIL_TEST("string2isds_sender_type() returned wrong type: "
"expected=%d, got=%d", *type, new_type);
PASS_TEST;
}
int main(int argc, char **argv) {
INIT_TEST("isds_sender_type conversion");
isds_sender_type types[] = {
SENDERTYPE_PRIMARY,
SENDERTYPE_ENTRUSTED,
SENDERTYPE_ADMINISTRATOR,
SENDERTYPE_OFFICIAL,
SENDERTYPE_VIRTUAL,
SENDERTYPE_OFFICIAL_CERT,
SENDERTYPE_LIQUIDATOR
};
const xmlChar *names[] = {
BAD_CAST "PRIMARY_USER",
BAD_CAST "ENTRUSTED_USER",
BAD_CAST "ADMINISTRATOR",
BAD_CAST "OFFICIAL",
BAD_CAST "VIRTUAL",
BAD_CAST "OFFICIAL_CERT",
BAD_CAST "LIQUIDATOR"
};
/* Known values */
for (int i = 0; i < sizeof(types)/sizeof(types[0]); i++)
TEST(names[i], test_string2sendertype,
names[i], IE_SUCCESS, &types[i]);
/* Uknown value */
TEST("X-Invalid_Type", test_string2sendertype,
BAD_CAST "X-Invalid_Type", IE_ENUM, &types[0]);
/* Invalid invocation */
TEST("NULL string", test_string2sendertype,
BAD_CAST NULL, IE_INVAL, &types[0]);
TEST("NULL type", test_string2sendertype,
names[0], IE_INVAL, NULL);
SUM_TEST();
}
|