LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Compare_Contract) { const char *pointer; PARCURISegment *segment = parcURISegment_Parse("MMM", &pointer); PARCURISegment *equivalents[] = { segment, parcURISegment_Parse("MMM",&pointer), NULL, }; PARCURISegment *lessers[] = { parcURISegment_Parse("MM", &pointer), parcURISegment_Parse("MML", &pointer), NULL, }; PARCURISegment *greaters[] = { parcURISegment_Parse("MMMM", &pointer), parcURISegment_Parse("MMN", &pointer), NULL, }; parcObjectTesting_AssertCompareTo(parcURISegment_Compare, segment, equivalents, lessers, greaters); for (int i = 0; equivalents[i] != NULL; i++) { parcURISegment_Release(&equivalents[i]); } for (int i = 0; lessers[i] != NULL; i++) { parcURISegment_Release(&lessers[i]); } for (int i = 0; greaters[i] != NULL; i++) { parcURISegment_Release(&greaters[i]); } }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Acquire) { char *expected = URI_PATH_SEGMENT; const char *pointer; PARCURISegment *segment = parcURISegment_Parse(expected, &pointer); PARCURISegment *handle = parcURISegment_Acquire(segment); assertTrue(parcURISegment_Equals(segment, handle), "Expected URI segments to be equal: %s - %s", parcURISegment_ToString(segment), parcURISegment_ToString(handle)); parcURISegment_Release(&segment); parcURISegment_Release(&handle); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Equals_Contract) { char *expected = URI_PATH_SEGMENT; const char *pointer; PARCURISegment *x = parcURISegment_Parse(expected, &pointer); PARCURISegment *y = parcURISegment_Parse(expected, &pointer); PARCURISegment *z = parcURISegment_Parse(expected, &pointer); parcObjectTesting_AssertEqualsFunction(parcURISegment_Equals, x, y, z, NULL); parcURISegment_Release(&x); parcURISegment_Release(&y); parcURISegment_Release(&z); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Clone) { char *expected = URI_PATH_SEGMENT; const char *pointer; PARCURISegment *segment = parcURISegment_Parse(expected, &pointer); PARCURISegment *copy = parcURISegment_Clone(segment); assertTrue(segment != copy, "Expected different instances of equal segments."); int comparison = parcURISegment_Compare(segment, copy); assertTrue(comparison == 0, "Expected equal segments."); assertTrue(parcURISegment_Equals(segment, copy), "Expected equal segments"); parcURISegment_Release(©); parcURISegment_Release(&segment); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Create) { char *expected = URI_PATH_SEGMENT; PARCURISegment *segment = parcURISegment_Create(strlen(expected), (unsigned char *) expected); assertNotNull(segment, "Expected non-null result."); parcURISegment_Release(&segment); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Release) { char *expected = URI_PATH_SEGMENT; const char *pointer; PARCURISegment *segment = parcURISegment_Parse(expected, &pointer); assertNotNull(segment, "Expected non-null result."); parcURISegment_Release(&segment); assertNull(segment, "Expected destroy to null the pointer"); }
PARCBufferComposer * ccnxNameSegment_BuildString(const CCNxNameSegment *segment, PARCBufferComposer *composer) { ccnxNameLabel_BuildString(segment->label, composer); if (ccnxNameSegment_Length(segment) > 0) { PARCURISegment *uriSegment = parcURISegment_CreateFromBuffer(ccnxNameSegment_GetValue(segment)); parcURISegment_BuildString(uriSegment, composer); parcURISegment_Release(&uriSegment); } return composer; }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_ToString) { const char *pointer; PARCURISegment *segment = parcURISegment_Parse(URI_PATH_SEGMENT, &pointer); assertNotNull(segment, "Expected non-null result."); assertTrue(*pointer == 0, "Expected pointer to point to the null terminating byte."); char *actual = parcURISegment_ToString(segment); assertTrue(strcmp(URI_PATH_SEGMENT, actual) == 0, "Expected %s, actual %s", URI_PATH_SEGMENT, actual); parcURISegment_Release(&segment); parcMemory_Deallocate((void **) &actual); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_GetBuffer) { const char *pointer; PARCURISegment *segment = parcURISegment_Parse(URI_PATH_SEGMENT, &pointer); assertNotNull(segment, "Expected non-null result."); assertTrue(*pointer == 0, "Expected pointer to point to the null terminating byte."); PARCBuffer *buffer = parcURISegment_GetBuffer(segment); char *expected = URI_PATH_SEGMENT; char *actual = (char *) parcBuffer_Overlay(buffer, 0); size_t compareLength = strlen(URI_PATH_SEGMENT); assertTrue(strncmp(expected, actual, compareLength), "Buffer does not contain original data."); parcURISegment_Release(&segment); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Length) { const char *pointer; PARCURISegment *segment = parcURISegment_Parse(URI_PATH_SEGMENT, &pointer); assertNotNull(segment, "Expected non-null result."); assertTrue(*pointer == 0, "Expected pointer to point to the null terminating byte."); size_t actual = parcURISegment_Length(segment); assertTrue(actual == 39, "Expected 39, actual %zd", actual); parcURISegment_Release(&segment); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Parse_WithExtraSlashes) { const char *pointer; PARCURISegment *segment = parcURISegment_Parse(URI_PATH_SEGMENT_WITH_SLASHES, &pointer); assertNotNull(segment, "Expected non-null result."); char *expectedBytes = URI_PATH_SEGMENT; char *actualBytes = parcURISegment_ToString(segment); assertTrue(strcmp(expectedBytes, actualBytes) == 0, "Expected %s actual %s", expectedBytes, actualBytes); parcMemory_Deallocate((void **) &actualBytes); assertTrue(parcURISegment_Length(segment) == 39, "Expected 39, actual %zd", parcURISegment_Length(segment)); assertTrue(*pointer == '/', "Expected pointer to point to the slash character: %c", *pointer); parcURISegment_Release(&segment); }
LONGBOW_TEST_CASE(parcURISegment, parcURISegment_Parse) { char *expected = URI_PATH_SEGMENT; const char *pointer; PARCURISegment *segment = parcURISegment_Parse(expected, &pointer); assertNotNull(segment, "Expected non-null result."); char *expectedBytes = URI_PATH_SEGMENT; char *actualBytes = parcURISegment_ToString(segment); assertTrue(strcmp(expectedBytes, actualBytes) == 0, "Expected %s actual %s", expectedBytes, actualBytes); parcMemory_Deallocate((void **) &actualBytes); assertTrue(parcURISegment_Length(segment) == 39, "Expected 39, actual %zd", parcURISegment_Length(segment)); assertTrue(*pointer == 0, "Expected pointer to point to the null terminating byte."); parcURISegment_Release(&segment); }