LONGBOW_TEST_CASE(Global, ccnxLink_Equals) { CCNxName *name = ccnxName_CreateFromCString("lci:/foo/bar/name"); PARCBuffer *keyId = parcBuffer_Allocate(10); PARCBuffer *contentObjectHash = parcBuffer_Allocate(20); CCNxLink *x = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&keyId); parcBuffer_Release(&contentObjectHash); name = ccnxName_CreateFromCString("lci:/foo/bar/name"); keyId = parcBuffer_Allocate(10); contentObjectHash = parcBuffer_Allocate(20); CCNxLink *y = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&keyId); parcBuffer_Release(&contentObjectHash); name = ccnxName_CreateFromCString("lci:/foo/bar/name"); keyId = parcBuffer_Allocate(10); contentObjectHash = parcBuffer_Allocate(20); CCNxLink *z = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&keyId); parcBuffer_Release(&contentObjectHash); name = ccnxName_CreateFromCString("lci:/foo/bar/othername"); keyId = parcBuffer_Allocate(10); contentObjectHash = parcBuffer_Allocate(20); CCNxLink *unequal1 = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&keyId); parcBuffer_Release(&contentObjectHash); name = ccnxName_CreateFromCString("lci:/foo/bar/name"); keyId = NULL; contentObjectHash = parcBuffer_Allocate(20); CCNxLink *unequal2 = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&contentObjectHash); name = ccnxName_CreateFromCString("lci:/foo/bar/name"); keyId = parcBuffer_Allocate(10); contentObjectHash = NULL; CCNxLink *unequal3 = ccnxLink_Create(name, keyId, contentObjectHash); ccnxName_Release(&name); parcBuffer_Release(&keyId); assertEqualsContract(ccnxLink_Equals, x, y, z, unequal1, unequal2, unequal3); ccnxLink_Release(&x); ccnxLink_Release(&y); ccnxLink_Release(&z); ccnxLink_Release(&unequal1); ccnxLink_Release(&unequal2); ccnxLink_Release(&unequal3); }
LONGBOW_TEST_CASE(Global, ccnxKeyLocator_Equals) { char *hexString = "ABCDEF1234"; PARCBuffer *keyBuffer = parcBuffer_WrapCString(hexString); PARCKeyId *keyId = parcKeyId_Create(keyBuffer); PARCKey *key1 = parcKey_CreateFromDerEncodedPublicKey(keyId, PARCSigningAlgorithm_RSA, keyBuffer); CCNxKeyLocator *keyLocator1 = ccnxKeyLocator_CreateFromKey(key1); parcKeyId_Release(&keyId); parcBuffer_Release(&keyBuffer); CCNxKeyLocator *keyLocator1Copy = ccnxKeyLocator_Copy(keyLocator1); PARCBuffer *keyBuffer2 = parcBuffer_WrapCString(hexString); PARCKeyId *keyId2 = parcKeyId_Create(keyBuffer2); PARCKey *key2 = parcKey_CreateFromDerEncodedPublicKey(keyId2, PARCSigningAlgorithm_RSA, keyBuffer2); CCNxKeyLocator *keyLocator2 = ccnxKeyLocator_CreateFromKey(key2); parcBuffer_Release(&keyBuffer2); parcKeyId_Release(&keyId2); CCNxName *keyURIName = ccnxName_CreateFromCString("lci://name"); CCNxLink *keyLink = ccnxLink_Create(keyURIName, NULL, NULL); CCNxKeyLocator *keyLocatorDiff = ccnxKeyLocator_CreateFromKeyLink(keyLink); ccnxKeyLocator_AssertValid(keyLocator1); ccnxKeyLocator_AssertValid(keyLocator1Copy); ccnxKeyLocator_AssertValid(keyLocator2); ccnxKeyLocator_AssertValid(keyLocatorDiff); assertEqualsContract(ccnxKeyLocator_Equals, keyLocator1, keyLocator1Copy, keyLocator2, keyLocatorDiff); parcKey_Release(&key1); ccnxKeyLocator_Release(&keyLocator1); ccnxKeyLocator_Release(&keyLocator1Copy); parcKey_Release(&key2); ccnxKeyLocator_Release(&keyLocator2); ccnxName_Release(&keyURIName); ccnxLink_Release(&keyLink); ccnxKeyLocator_Release(&keyLocatorDiff); }