/** Generic remove test. */
  public void verifyPersistAndRemove(Object object) {
    EntityManager em = createEntityManager();
    try {
      beginTransaction(em);
      em.persist(object);
      commitTransaction(em);
      closeEntityManager(em);

      em = createEntityManager();
      beginTransaction(em);
      object = em.find(object.getClass(), getServerSession(getPersistenceUnitName()).getId(object));
      em.remove(object);
      commitTransaction(em);
      verifyDelete(object);
      closeEntityManager(em);
    } catch (RuntimeException exception) {
      if (isTransactionActive(em)) {
        rollbackTransaction(em);
      }
      closeEntityManager(em);
      throw exception;
    }
  }
 /** Generic persist test. */
 public void verifyPersist(Object object) {
   EntityManager em = createEntityManager();
   try {
     beginTransaction(em);
     em.persist(object);
     commitTransaction(em);
     beginTransaction(em);
     verifyObjectInCacheAndDatabase(object);
     rollbackTransaction(em);
     closeEntityManager(em);
   } catch (RuntimeException exception) {
     if (isTransactionActive(em)) {
       rollbackTransaction(em);
     }
     closeEntityManager(em);
     throw exception;
   }
 }