public void testSimpleUUIDForClassRoundTrip(ObjectMapperTester<UUIDNode> mapper) {
    UUIDNode root = new UUIDNode(1);
    UUIDNode child1 = new UUIDNode(2);
    UUIDNode child2 = new UUIDNode(3);
    root.first = child1;
    root.second = child2;
    child1.parent = root;
    child2.parent = root;
    child1.first = child2;

    String json = mapper.write(root);

    // and should come back the same too...
    UUIDNode result = mapper.read(json);
    assertEquals(1, result.value);
    UUIDNode result2 = result.first;
    UUIDNode result3 = result.second;
    assertNotNull(result2);
    assertNotNull(result3);
    assertEquals(2, result2.value);
    assertEquals(3, result3.value);

    assertSame(result, result2.parent);
    assertSame(result, result3.parent);
    assertSame(result3, result2.first);
  }
  public void testSimpleUUIDForClassRoundTrip() throws Exception {
    UUIDNode root = new UUIDNode(1);
    UUIDNode child1 = new UUIDNode(2);
    UUIDNode child2 = new UUIDNode(3);
    root.first = child1;
    root.second = child2;
    child1.parent = root;
    child2.parent = root;
    child1.first = child2;

    String json = mapper.writeValueAsString(root);

    // and should come back the same too...
    UUIDNode result = mapper.readValue(json, UUIDNode.class);
    assertEquals(1, result.value);
    UUIDNode result2 = result.first;
    UUIDNode result3 = result.second;
    assertNotNull(result2);
    assertNotNull(result3);
    assertEquals(2, result2.value);
    assertEquals(3, result3.value);

    assertSame(result, result2.parent);
    assertSame(result, result3.parent);
    assertSame(result3, result2.first);
  }