diff --git a/src/partners_check.c b/src/partners_check.c index ae3e80e..670687b 100644 --- a/src/partners_check.c +++ b/src/partners_check.c @@ -94,7 +94,8 @@ int validate_partner_id(wrp_msg_t *msg, partners_t **partnerIds) for(j = 0; jcount; j++) { ParodusPrint("partnersList->partner_ids[%lu] = %s\n",j, partnersList->partner_ids[j]); - if(strcmp(partnersList->partner_ids[j], msg->u.event.partner_ids->partner_ids[i]) == 0) + ParodusPrint("msg->u.event.partner_ids->partner_ids[%lu] = %s\n",i, msg->u.event.partner_ids->partner_ids[i]); + if(strcasecmp(partnersList->partner_ids[j], msg->u.event.partner_ids->partner_ids[i]) == 0) { ParodusInfo("partner_id match found\n"); matchFlag = 1; @@ -154,7 +155,8 @@ int validate_partner_id(wrp_msg_t *msg, partners_t **partnerIds) for(j = 0; jcount; j++) { ParodusPrint("partnersList->partner_ids[%lu] = %s\n",j, partnersList->partner_ids[j]); - if(strcmp(partnersList->partner_ids[j], msg->u.req.partner_ids->partner_ids[i]) == 0) + ParodusPrint("msg->u.req.partner_ids->partner_ids[%lu] = %s\n",i, msg->u.req.partner_ids->partner_ids[i]); + if(strcasecmp(partnersList->partner_ids[j], msg->u.req.partner_ids->partner_ids[i]) == 0) { ParodusInfo("partner_id match found\n"); matchFlag = 1; diff --git a/tests/test_partners_check.c b/tests/test_partners_check.c index 8332a30..09f74e6 100755 --- a/tests/test_partners_check.c +++ b/tests/test_partners_check.c @@ -60,6 +60,25 @@ void test_validate_partner_id_for_req() free(msg); } +void test_validate_partner_id_for_req_case_insensitive() +{ + static partners_t partner_ids = {2,{"Shaw","Comcast"}}; + wrp_msg_t *msg = (wrp_msg_t*) malloc(sizeof(wrp_msg_t)); + memset(msg, 0, sizeof(wrp_msg_t)); + msg->msg_type = WRP_MSG_TYPE__REQ; + msg->u.req.partner_ids = &partner_ids; + + ParodusCfg cfg; + memset(&cfg, 0, sizeof(ParodusCfg)); + parStrncpy(cfg.partner_id, "comcast", sizeof(cfg.partner_id)); + + will_return(get_parodus_cfg, (intptr_t)&cfg); + expect_function_call(get_parodus_cfg); + int ret = validate_partner_id(msg, NULL); + assert_int_equal(ret, 1); + free(msg); +} + void test_validate_partner_id_for_req_listNULL() { wrp_msg_t *msg = (wrp_msg_t*) malloc(sizeof(wrp_msg_t)); @@ -134,6 +153,28 @@ void test_validate_partner_id_for_event() free(msg); } +void test_validate_partner_id_for_event_case_insensitive() +{ + static partners_t partner_ids = {1,{"Comcast"}}; + wrp_msg_t *msg = (wrp_msg_t*) malloc(sizeof(wrp_msg_t)); + memset(msg, 0, sizeof(wrp_msg_t)); + msg->msg_type = WRP_MSG_TYPE__EVENT; + msg->u.event.partner_ids = &partner_ids; + + ParodusCfg cfg; + memset(&cfg, 0, sizeof(ParodusCfg)); + parStrncpy(cfg.partner_id, "*,comcast", sizeof(cfg.partner_id)); + + will_return(get_parodus_cfg, (intptr_t)&cfg); + expect_function_call(get_parodus_cfg); + + partners_t *list = NULL; + int ret = validate_partner_id(msg, &list); + assert_int_equal(ret, 1); + free(list); + free(msg); +} + void test_validate_partner_id_for_event_listNULL() { wrp_msg_t *msg = (wrp_msg_t*) malloc(sizeof(wrp_msg_t)); @@ -218,10 +259,12 @@ int main(void) { const struct CMUnitTest tests[] = { cmocka_unit_test(test_validate_partner_id_for_req), + cmocka_unit_test(test_validate_partner_id_for_req_case_insensitive), cmocka_unit_test(test_validate_partner_id_for_req_listNULL), cmocka_unit_test(test_validate_partner_id_for_req_withoutId), cmocka_unit_test(err_validate_partner_id_for_req), cmocka_unit_test(test_validate_partner_id_for_event), + cmocka_unit_test(test_validate_partner_id_for_event_case_insensitive), cmocka_unit_test(test_validate_partner_id_for_event_listNULL), cmocka_unit_test(test_validate_partner_id_for_event_withoutId), cmocka_unit_test(err_validate_partner_id_for_event),