@Test
    public void testConvertWithSubClass() {
        mapper = getMapper("mappings/recursivemappings.xml", "mappings/recursivemappings2.xml");
        ClassAA testAA = createTestClassAA();
        // the == is on purpose, we test that the referenced parent of the first item of the subs is the parent instance
        // itself
        ClassB testClassB = testAA.getSubs().iterator().next();
        assertTrue(testClassB.getParent() == testAA);
        ClassAAPrime testAAPrime = mapper.map(testAA, ClassAAPrime.class, null);
        // testing the new dozer3.0 bi-directionnal reference through a set
        assertEquals(testAA.getSubs().size(), testAAPrime.getSubs().size());
        // the equality is true at the data level
        ClassBPrime testClassBPrime = testAAPrime.getSubs().iterator().next();
        assertTrue(testClassBPrime.getParent().equals(testAAPrime));
        // we want the referenced parent of the first item of the subs to be the parent instance itself
        ClassBPrime testClassBPrime2 = testAAPrime.getSubs().iterator().next();
        assertTrue(testClassBPrime2.getParent() == testAAPrime);
    }
this test should validate dozerXX correct behaviour in front of recursive class references in a subclass. With
dozer3.0 the first reference is not used but the recursion is correct on the next levels.
core/src/test/java/com/github/dozermapper/core/functional_tests/RecursiveTest.java