CCNxControl * ccnxControl_CreateCancelFlowRequest(const CCNxName *name) { PARCJSON *request = cpiCancelFlow_CreateRequest(name); CCNxControl *result = ccnxControl_CreateCPIRequest(request); parcJSON_Release(&request); return result; }
LONGBOW_TEST_CASE(Global, cpiCancelFlow_NameFromControlMessage) { CCNxName *name = ccnxName_CreateFromURI("lci:/who/doesnt/like/pie"); PARCJSON *cpiRequest = cpiCancelFlow_CreateRequest(name); CCNxControl *controlRequest = ccnxControl_CreateCPIRequest(cpiRequest); CCNxName *test_name = cpiCancelFlow_NameFromControlMessage(controlRequest); assertTrue(ccnxName_Equals(test_name, name), "Expected %s actual %s", ccnxName_ToString(name), ccnxName_ToString(test_name)); ccnxName_Release(&test_name); ccnxControl_Release(&controlRequest); parcJSON_Release(&cpiRequest); ccnxName_Release(&name); }
LONGBOW_TEST_CASE(Global, cpiCancelFlow_CreateRequest) { const char truth_format[] = "{\"CPI_REQUEST\":{\"SEQUENCE\":%" PRIu64 ",\"CPI_CANCEL_FLOW\":{\"FLOW_NAME\":\"lci:/who/doesnt/like/pie\"}}}"; CCNxName *name = ccnxName_CreateFromURI("lci:/who/doesnt/like/pie"); PARCJSON *cpiRequest = cpiCancelFlow_CreateRequest(name); CCNxControl *controlRequest = ccnxControl_CreateCPIRequest(cpiRequest); PARCJSON *json = ccnxControl_GetJson(controlRequest); char buffer[1024]; sprintf(buffer, truth_format, cpi_GetSequenceNumber(controlRequest)); char *test_string = parcJSON_ToCompactString(json); assertTrue(strcmp(buffer, test_string) == 0, "Incorrect JSON, expected '%s' got '%s'", buffer, test_string); parcMemory_Deallocate((void **) &test_string); ccnxControl_Release(&controlRequest); parcJSON_Release(&cpiRequest); ccnxName_Release(&name); }