ProductDao extends HibernateDao<Product, Long> { public Iterator<Product> getProductsByIngestionDate (Date max_date) { SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss.SSS"); String date = sdf.format (max_date); String query = "FROM " + entityClass.getName () + " " + "WHERE created < '" + date + "' AND processed=true AND " + "locked=false ORDER BY created ASC, updated ASC"; return new PagedIterator<> (this, query); }  static int getMaxPageSize(); Product getProductByPath(final URL path); @Override List<Product> listCriteria(DetachedCriteria detached, int skip,
         int top); @SuppressWarnings ("unchecked") List<Product> read(List<Long>ids); boolean exists(URL url); @Override List<Product> scroll(String clauses, int skip, int n); Iterator<Product> scrollFiltered(String filter, final Long collection_id, int skip); int count(String filter, final String collection_uuid); @Override void deleteAll(); @Override void delete(Product product); void setIndexes(Product product, List<MetadataIndex>indexes); void setIndexes(Long id, List<MetadataIndex>indexes); Iterator<Product> getProductsByIngestionDate(Date max_date); Iterator<Product> getProductsLowerAccess(Date max_date); static String getPathFromProduct(Product product); static String getPathFromURL(URL product); @SuppressWarnings ("unchecked") List<Long> getAuthorizedProducts(String user_uuid); @SuppressWarnings ("unchecked") Product getProductByDownloadableFilename(final String filename,
         final Collection collection); Product getProductByUuid(String uuid); List<Product> getNoCollectionProducts(User user); List<Product> scrollUploadedProducts(final User user, final int skip,
      final int top); @SuppressWarnings ("unchecked") List<Product> getUploadedProducts(final User user); User getOwnerOfProduct(final Product product); boolean isAuthorized(final String user_uuid, final long product_id); Iterator<Product> getUnprocessedProducts(); Iterator<Product> getAllProducts(); Product getProductByIdentifier(String identifier);  }
@Test public void getProductByIngestionDate () { Date date = new Date (); Iterator<Product> products = dao.getProductsByIngestionDate (date); Assert.assertEquals (getIteratorSize (products), 4); Calendar calendar = Calendar.getInstance (); calendar.set (2014, Calendar.JUNE, 07, 0, 0, 0); date = calendar.getTime (); products = dao.getProductsByIngestionDate (date); Assert.assertEquals (getIteratorSize (products), 1); }