@Test(dependsOnMethods = {"storeEntity"})
 @Rollback(value = false)
 @Transactional(value = TxType.NEVER)
 public void getByUser() throws IOException, PreviewTooLongException {
   Assert.assertEquals(printerProjectDao.getRowCount(), 2);
   List<PrinterProject> projects =
       printerProjectDao.get(0, 100, GalleryOrder.RECENT, null, null, null, PROJECT_1_USER);
   Assert.assertEquals(projects.size(), 2);
 }
 @AfterGroups(
     alwaysRun = true,
     value = {"printerProjectDao"})
 @Rollback(value = false)
 public void clearDatabase() throws ElementCannotBeRemovedException {
   for (PrinterProject project : printerProjectDao.getAll()) {
     printerProjectDao.makeTransient(project);
   }
   Assert.assertEquals(printerProjectDao.getRowCount(), 0);
 }
 @Test(dependsOnMethods = {"storeEntity"})
 @Rollback(value = false)
 @Transactional(value = TxType.NEVER)
 public void getByDate() throws IOException, PreviewTooLongException {
   Assert.assertEquals(printerProjectDao.getRowCount(), 2);
   List<PrinterProject> projects =
       printerProjectDao.get(0, 100, GalleryOrder.RECENT, null, null, null, null);
   Assert.assertEquals(projects.size(), 2);
   // First project must be the obtained.
   Assert.assertTrue(comparePrinterProjects(projects.get(0), project1));
 }
  @Test(dependsOnMethods = {"storeEntity"})
  @Rollback(value = false)
  @Transactional(value = TxType.NEVER)
  public void getPagination() throws IOException, PreviewTooLongException {
    Assert.assertEquals(printerProjectDao.getRowCount(), 2);
    List<PrinterProject> projects =
        printerProjectDao.get(0, 1, GalleryOrder.ALPHABETIC, null, null, null, null);
    Assert.assertEquals(projects.size(), 1);

    projects = printerProjectDao.get(100, 1, GalleryOrder.ALPHABETIC, null, null, null, null);
    Assert.assertEquals(projects.size(), 0);
  }
  @Test
  @Rollback(value = false)
  @Transactional(value = TxType.NEVER)
  public void storeEntity() throws IOException, PreviewTooLongException {
    Assert.assertEquals(printerProjectDao.getRowCount(), 0);
    project1 =
        createPrinterProject(
            PROJECT_1_NAME,
            PROJECT_1_DESCRIPTION,
            PROJECT_1_TAGS,
            PROJECT_1_CATEGORIES,
            ImageTools.loadImageFromResource(PROJECT_1_PREVIEW_FILE),
            PROJECT_1_USER);
    printerProjectDao.makePersistent(project1);
    Assert.assertNotNull(project1.getId());
    Assert.assertEquals(printerProjectDao.getRowCount(), 1);

    // Retrieve from database
    PrinterProject projectRetrieved = printerProjectDao.get(project1.getId());
    // Check new object.
    Assert.assertTrue(comparePrinterProjects(project1, projectRetrieved));

    // Add new Project
    project2 =
        createPrinterProject(
            PROJECT_2_NAME,
            PROJECT_2_DESCRIPTION,
            PROJECT_2_TAGS,
            PROJECT_2_CATEGORIES,
            ImageTools.loadImageFromResource(PROJECT_2_PREVIEW_FILE),
            PROJECT_2_USER);
    printerProjectDao.makePersistent(project2);
    Assert.assertNotNull(project2.getId());
    Assert.assertEquals(printerProjectDao.getRowCount(), 2);
  }