@Test
  public void updateAndDeletePushApplication() {
    final String pushApplicationID1 = "888";

    assertThat(pushApplicationDao.findByPushApplicationID(pushApplicationID1)).isNotNull();
    assertThat(pushApplicationDao.findByPushApplicationID(pushApplicationID1).getName())
        .isEqualTo("Push App 1");

    final PushApplication pushApplication1 =
        pushApplicationDao.findByPushApplicationID(pushApplicationID1);
    pushApplication1.setName("Cool Push App 1");
    pushApplicationDao.update(pushApplication1);

    assertThat(pushApplicationDao.findByPushApplicationID(pushApplicationID1)).isNotNull();
    assertThat(pushApplicationDao.findByPushApplicationID(pushApplicationID1).getName())
        .isEqualTo("Cool Push App 1");

    pushApplicationDao.delete(pushApplication1);
    assertThat(pushApplicationDao.findByPushApplicationID(pushApplicationID1)).isNull();
  }
  @Test
  public void deletePushApplicationIncludingVariantAndInstallations() {
    final String id = "888";

    final PushApplication pa = pushApplicationDao.findByPushApplicationID(id);

    pushApplicationDao.delete(pa);
    // flush to be sure that it's in the database
    entityManager.flush();
    // clear the cache otherwise finding the entity will not perform a select but get the entity
    // from cache
    entityManager.clear();

    // Installation should be gone:
    assertThat(entityManager.find(Installation.class, "1")).isNull();

    // Variant should be gone:
    assertThat(entityManager.find(AndroidVariant.class, "1")).isNull();

    // PushApp should be gone:
    assertThat(pushApplicationDao.find(id)).isNull();
  }