if (packetA.getNumEntries() != packetB.getNumEntries()) return false;
@Test public void testRemoveKey() { assertEquals(3, indexPacket1.getNumEntries()); // Try to remove a key that doesn't exist in the packet indexPacket1.remove(emailPacket4.getDhtKey()); assertEquals(3, indexPacket1.getNumEntries()); // Remove a key that does exist in the packet indexPacket1.remove(emailPacket1.getDhtKey()); assertEquals(2, indexPacket1.getNumEntries()); } }
log.debug("Found " + mergedPacket.getNumEntries() + " Email Packet keys in " + indexPacketResults.getNumResults() + " Index Packets.");
/** * Verifies that the arrays are the right length * @throws IllegalAccessException * @throws NoSuchFieldException * @throws IllegalArgumentException * @throws SecurityException */ @Test public void testToByteArray() throws SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException { // test the first index packet int arrayLength1 = indexPacket1.toByteArray().length; int expectedLength1 = 2 + Hash.HASH_LENGTH + 4 + indexPacket1.getNumEntries() * (2*Hash.HASH_LENGTH+4); assertEquals(expectedLength1, arrayLength1); // test the second index packet int arrayLength2 = indexPacket2.toByteArray().length; int expectedLength2 = 2 + Hash.HASH_LENGTH + 4 + indexPacket2.getNumEntries() * (2*Hash.HASH_LENGTH+4); assertEquals(expectedLength2, arrayLength2); }
long expirationTime1 = cutoffTime - 3*1000; setStoreTime(indexPacket, emailPacket1.getDhtKey(), expirationTime1); assertEquals(1, indexPacket.getNumEntries()); folder.store(indexPacket); assertEquals(1, folder.getElements().size()); assertEquals(1, folder.getElements().get(0).getNumEntries()); assertEquals(expirationTime1/1000L, folder.getElements().get(0).iterator().next().storeTime/1000L); // round to seconds long expirationTime2 = cutoffTime + 3*1000; setStoreTime(indexPacket, emailPacket2.getDhtKey(), expirationTime2); assertEquals(2, indexPacket.getNumEntries()); folder.store(indexPacket); assertEquals(1, folder.getElements().size()); assertEquals(1, folder.iterator().next().getNumEntries()); assertEquals(0, folder.iterator().next().getNumEntries());
@Test public void testMergePackets() { for (int i=0; i<8; i+=2) { IndexPacket mergedPacket = new IndexPacket(indexPacket1, indexPacket2); // Verify that the merged packet and the two original packets all have the same email destination key assertEquals(mergedPacket.getDhtKey(), indexPacket1.getDhtKey()); assertEquals(mergedPacket.getDhtKey(), indexPacket2.getDhtKey()); // Verify that the merged packet contains the email packet keys from the original two packets assertEquals(5, mergedPacket.getNumEntries()); for (IndexPacketEntry entry: indexPacket1) assertTrue("Merged packet does not contain key: " + entry.emailPacketKey, mergedPacket.contains(entry.emailPacketKey)); for (IndexPacketEntry entry: indexPacket2) assertTrue("Merged packet does not contain key: " + entry.emailPacketKey, mergedPacket.contains(entry.emailPacketKey)); } }
DhtStorablePacket storedPacket = folder.retrieve(dest1Hash); assertTrue(storedPacket instanceof IndexPacket); assertEquals("The index packet should have no entries!", 0, ((IndexPacket)storedPacket).getNumEntries());