@Test
    public void testMappingSetOfObjectsWithMapId() {

        // Our src object created with a collection of children one of which will have a null field,
        // the destination will contain a matching child which does not contain a null
        // value which we don't want to overwrite.
        Child srcChild1 = new Child(1, "F1", null);
        ParentWithChildSet src = new ParentWithChildSet(srcChild1, new Child(2, "F2", "L2"));
        ParentWithChildSet dest = new ParentWithChildSet(new Child(1, "F1Origial", "L1"), new Child(2, "F2Original", "L2Original"));

        //Double check to make sure that the field is null, otherwise our test would be invalid.
        Assert.assertNull(srcChild1.getLastName());
        Assert.assertEquals(new Integer(1), srcChild1.getId());

        //Perform the mapping
        Mapper mapper = DozerBeanMapperBuilder.create()
                .withMappingBuilder(getParentMapping(ParentWithChildSet.class))
                .withMappingBuilder(getChildMapping())
                .build();
        mapper.map(src, dest, MAP_ID_PATENT);

        checkResults(src, dest);
    }
This test is to verify that the builder with the specified mapid is being used for the objects within a collection contained within an object which is being mapped.
<p>
There appeared to be an issue in {@link MappingProcessor} for non_cumulative Sets and Lists where mapToDestObject is
being called without passing the configured mapId of the object being mapped resulting in the default behaviour being
used rather than the configuration specific by the builder that has been defined against the mapid.
core/src/test/java/com/github/dozermapper/core/functional_tests/builder/DeepMappingWithMapIdTest.java