PropertyDefinition pd1 = new PropertyDefinitionBuilder(PX_PD_1).build();
PropertyDefinition pd2 = new PropertyDefinitionBuilder(PX_PD_2).build();
PropertyDefinition pd3 = new PropertyDefinitionBuilder(PX_PD_3).build();
Property p1 = new PropertyBuilder(PX_P_1).propertyDefinition(pd1).build();
Property p2 = new PropertyBuilder(PX_P_2).propertyDefinition(pd2).build();
CMSObject root = new CMSObjectBuilder(PX_ROOT).build();
CMSObject child11 = new CMSObjectBuilder(PX_O_11).build();
CMSObject child12 = new CMSObjectBuilder(PX_O_12).build();
CMSObject child21 = new CMSObjectBuilder(PX_O_21).build();
CMSObject child13 = new CMSObjectBuilder(PX_O_13).build();
ObjectTypeDefinition type1 = new ObjectTypeBuilder(PX_OT_1).propertyDefinition(pd1).build();
ObjectTypeDefinition type2 = new ObjectTypeBuilder(PX_OT_2).propertyDefinition(pd2).build();
ObjectTypeDefinition type3 = new ObjectTypeBuilder(PX_OT_3).propertyDefinition(pd3).build();
root.setObjectTypeRef(type1.getUniqueRef());
child11.setObjectTypeRef(type1.getUniqueRef());
child12.setObjectTypeRef(type2.getUniqueRef());
child13.setObjectTypeRef(type2.getUniqueRef());
child21.setObjectTypeRef(type3.getUniqueRef());
p1.setContainerObjectRef(root.getUniqueRef());
root.getProperty().add(p1);
root.getProperty().add(p2);
root.getChildren().add(child11);
child11.setParentRef(root.getUniqueRef());
root.getChildren().add(child12);
child12.setParentRef(root.getUniqueRef());
child11.getChildren().add(child21);
child21.setParentRef(child11.getUniqueRef());
// child13 has the same name as child11
root.getChildren().add(child13);
child13.setParentRef(root.getUniqueRef());
child13.setLocalname(child11.getLocalname());
processPaths(root);
repository.addAll(Arrays.asList(new Object[] {root, child11, child12, child13, child21, type1, type2,
type3, pd1, pd2}));