public void verifyNodeCache(int size, Object factory) { assertEquals(size, ((Integer) ObjectTools.get(factory, "cacheSize")).intValue()); int nodeCount = 0; for (Object node = ObjectTools.get(factory, "cacheHead"); node != null; node = ObjectTools.get(node, "next")) { nodeCount++; } assertEquals(size, nodeCount); }
public void testNodeCache_unlimited() { Queue<String> queue = new LinkedQueue<String>(-1); String first = "first"; String second = "second"; String third = "third"; String fourth = "fourth"; String fifth = "fifth"; Object factory = ObjectTools.get(queue, "nodeFactory"); this.verifyNodeCache(0, factory); queue.enqueue(first); this.verifyNodeCache(0, factory); queue.enqueue(second); queue.enqueue(third); queue.enqueue(fourth); queue.enqueue(fifth); this.verifyNodeCache(0, factory); assertNull(ObjectTools.get(factory, "cacheHead")); queue.dequeue(); this.verifyNodeCache(1, factory); queue.dequeue(); this.verifyNodeCache(2, factory); queue.dequeue(); this.verifyNodeCache(3, factory); queue.dequeue(); this.verifyNodeCache(4, factory); queue.dequeue(); this.verifyNodeCache(5, factory); queue.enqueue(first); this.verifyNodeCache(4, factory); queue.enqueue(second); this.verifyNodeCache(3, factory); queue.enqueue(third); this.verifyNodeCache(2, factory); queue.enqueue(fourth); this.verifyNodeCache(1, factory); queue.enqueue(fifth); this.verifyNodeCache(0, factory); }
public void testNodeToString() { Queue<String> queue = QueueTools.linkedQueue(); String first = "first"; String second = "second"; String third = "third"; queue.enqueue(first); queue.enqueue(second); queue.enqueue(third); Object head = ObjectTools.get(queue, "head"); assertTrue(head.toString().startsWith("LinkedQueue.Node")); assertTrue(head.toString().endsWith("(first)")); }
public void testSerialization_caching() throws Exception { Queue<String> original = QueueTools.linkedQueue(20); original.enqueue("first"); Queue<String> clone = TestTools.serialize(original); assertEquals(original.peek(), clone.peek()); assertEquals(original.dequeue(), clone.dequeue()); assertNotSame(original, clone); assertTrue(original.isEmpty()); assertEquals(original.isEmpty(), clone.isEmpty()); original.enqueue("second"); assertFalse(original.isEmpty()); // clone should still be empty assertTrue(clone.isEmpty()); Object factory = ObjectTools.get(original, "nodeFactory"); assertTrue(factory.toString().startsWith("LinkedQueue.CachingNodeFactory")); }
public void testCachingNodeFactoryToString() { Queue<String> queue = QueueTools.linkedQueue(20); Object factory = ObjectTools.get(queue, "nodeFactory"); assertTrue(factory.toString().startsWith("LinkedQueue.CachingNodeFactory")); assertTrue(factory.toString().endsWith("(0)")); }
public void testSimpleNodeFactoryToString() { Queue<String> queue = QueueTools.linkedQueue(); Object factory = ObjectTools.get(queue, "nodeFactory"); assertEquals("LinkedQueue.SimpleNodeFactory", factory.toString()); }