@Test
  public void testPersistEntity_complexObject() {

    System.out.println("\nTestPersistenceManager.testPersistEntity_complexObject()");
    System.out.println("----------------------------------------------------------");
    ScriptFile roleSF = new ScriptFile();
    roleSF.setName("roleSFName1");
    roleSF.setPath("roleSFPath1");
    assertNull(roleSF.getId());

    ScriptFile playBookSF1 = new ScriptFile();
    playBookSF1.setName("playBookSFName1");
    playBookSF1.setPath("playBookSFPath1");
    assertNull(playBookSF1.getId());

    ScriptFile playBookSF2 = new ScriptFile();
    playBookSF2.setName("playBookSFName2");
    playBookSF2.setPath("playBookSFPath2");
    assertNull(playBookSF2.getId());

    AnsibleModuleDefinition anModDefinition = new AnsibleModuleDefinition();
    List<ScriptFile> playBookSFList = new ArrayList<ScriptFile>();
    playBookSFList.add(playBookSF1);
    playBookSFList.add(playBookSF2);
    Set<ScriptFile> roleSFList = new HashSet<ScriptFile>();
    roleSFList.add(roleSF);
    anModDefinition.setPlayBooks(playBookSFList);
    anModDefinition.setRoles(roleSFList);
    assertNull(anModDefinition.getId());

    persistenceManager.persistEntity(anModDefinition);

    List<AnsibleModuleDefinition> entities =
        persistenceManager.getEntities(AnsibleModuleDefinition.class);
    assertNotNull(entities);
    assertEquals(1, entities.size());
    AnsibleModuleDefinition retrievedDefinition = entities.get(0);
    assertNotNull(retrievedDefinition);
    assertNotNull(retrievedDefinition.getId());

    assertEquals(2, retrievedDefinition.getPlayBooks().size());
    assertEquals(1, retrievedDefinition.getRoles().size());
  }