@Test
  public void testGenerateBundleSelectionCriteriaID() {
    final CatalogVersionModel catalogVersion =
        catalogVersionService.getSessionCatalogVersions().iterator().next();

    final AutoPickBundleSelectionCriteriaModel selecCrit1 =
        modelService.create(AutoPickBundleSelectionCriteriaModel.class);
    Assert.assertNull(selecCrit1.getId());
    selecCrit1.setCatalogVersion(catalogVersion);
    modelService.save(selecCrit1);
    Assert.assertNotNull(selecCrit1.getId());
    LOG.info("selecCrit1.id: " + selecCrit1.getId());

    final PickExactlyNBundleSelectionCriteriaModel selecCrit2 =
        modelService.create(PickExactlyNBundleSelectionCriteriaModel.class);
    Assert.assertNull(selecCrit2.getId());
    selecCrit2.setCatalogVersion(catalogVersion);
    selecCrit2.setN(Integer.valueOf(1));
    modelService.save(selecCrit2);
    Assert.assertNotNull(selecCrit2.getId());
    Assert.assertTrue(!selecCrit1.getId().equals(selecCrit2.getId()));
    LOG.info("selecCrit2.id: " + selecCrit2.getId());

    final PickNToMBundleSelectionCriteriaModel selecCrit3 =
        modelService.create(PickNToMBundleSelectionCriteriaModel.class);
    Assert.assertNull(selecCrit3.getId());
    selecCrit3.setCatalogVersion(catalogVersion);
    selecCrit3.setN(Integer.valueOf(1));
    selecCrit3.setM(Integer.valueOf(2));
    modelService.save(selecCrit3);
    Assert.assertNotNull(selecCrit3.getId());
    Assert.assertTrue(!selecCrit1.getId().equals(selecCrit3.getId()));
    Assert.assertTrue(!selecCrit2.getId().equals(selecCrit3.getId()));
    LOG.info("selecCrit3.id: " + selecCrit3.getId());

    final AutoPickBundleSelectionCriteriaModel selecCrit4 =
        modelService.create(AutoPickBundleSelectionCriteriaModel.class);
    Assert.assertNull(selecCrit4.getId());
    selecCrit4.setCatalogVersion(catalogVersion);
    selecCrit4.setId("MyOwnSelecCritID");
    modelService.save(selecCrit4);
    Assert.assertEquals("MyOwnSelecCritID", selecCrit4.getId());
    LOG.info("selecCrit4.id: " + selecCrit4.getId());

    final PickNToMBundleSelectionCriteriaModel selecCrit5 =
        modelService.create(PickNToMBundleSelectionCriteriaModel.class);
    Assert.assertNull(selecCrit5.getId());
    selecCrit5.setCatalogVersion(catalogVersion);
    selecCrit5.setN(Integer.valueOf(1));
    selecCrit5.setM(Integer.valueOf(2));
    modelService.save(selecCrit5);
    Assert.assertNotNull(selecCrit5.getId());
    Assert.assertTrue(!selecCrit1.getId().equals(selecCrit5.getId()));
    Assert.assertTrue(!selecCrit2.getId().equals(selecCrit5.getId()));
    Assert.assertTrue(!selecCrit3.getId().equals(selecCrit5.getId()));
    LOG.info("selecCrit5.id: " + selecCrit5.getId());
  }