コード例 #1
0
  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"));
  }