@Test
 public void deleteItemTest() {
   ItemDTO pdto = data.get(0);
   itemLogicService.deleteItem(pdto.getId());
   ItemDTO deleted = itemPersistence.getItem(pdto.getId());
   Assert.assertNull(deleted);
 }
 @Test
 public void deleteItemTest() {
   ItemEntity entity = data.get(0);
   itemPersistence.deleteItem(entity.getId());
   ItemEntity deleted = em.find(ItemEntity.class, entity.getId());
   Assert.assertNull(deleted);
 }
 @Test
 public void getItemTest() {
   ItemEntity entity = data.get(0);
   ItemDTO dto = itemPersistence.getItem(entity.getId());
   Assert.assertNotNull(dto);
   Assert.assertEquals(entity.getFechaLlegada(), dto.getFechaLlegada());
   Assert.assertEquals(entity.getFechaExpiracion(), dto.getFechaExpiracion());
   Assert.assertEquals(entity.getCosto(), dto.getCosto());
   Assert.assertEquals(entity.getName(), dto.getName());
   Assert.assertEquals(entity.getLugar(), dto.getLugar());
 }
 private void insertData() {
   for (int i = 0; i < 3; i++) {
     ItemDTO pdto = new ItemDTO();
     pdto.setCantidadItem(generateRandom(Integer.class));
     pdto.setFechaExpiracion(generateRandom(Date.class));
     pdto.setName(generateRandom(String.class));
     pdto.setPrecio(generateRandom(Double.class));
     pdto.setBodega(generateRandom(String.class));
     pdto.setProductoaId(generateRandom(Long.class));
     pdto = itemPersistence.createItem(pdto);
     data.add(pdto);
   }
 }
 @Test
 public void getItemsTest() {
   List<ItemDTO> list = itemPersistence.getItems();
   Assert.assertEquals(list.size(), data.size());
   for (ItemDTO dto : list) {
     boolean found = false;
     for (ItemEntity entity : data) {
       if (dto.getId() == entity.getId()) {
         found = true;
       }
     }
     Assert.assertTrue(found);
   }
 }
  @Test
  public void createItemTest() {
    ItemDTO dto = new ItemDTO();
    dto.setFechaLlegada(generateRandom(Date.class));
    dto.setFechaExpiracion(generateRandom(Date.class));
    dto.setCosto(generateRandom(Double.class));
    dto.setName(generateRandom(String.class));
    dto.setLugar(generateRandom(String.class));

    ItemDTO result = itemPersistence.createItem(dto);

    Assert.assertNotNull(result);

    ItemEntity entity = em.find(ItemEntity.class, result.getId());

    Assert.assertEquals(dto.getFechaLlegada(), entity.getFechaLlegada());
    Assert.assertEquals(dto.getFechaExpiracion(), entity.getFechaExpiracion());
    Assert.assertEquals(dto.getCosto(), entity.getCosto());
    Assert.assertEquals(dto.getName(), entity.getName());
    Assert.assertEquals(dto.getLugar(), entity.getLugar());
  }
  @Test
  public void updateItemTest() {
    ItemEntity entity = data.get(0);

    ItemDTO dto = new ItemDTO();
    dto.setId(entity.getId());
    dto.setFechaLlegada(generateRandom(Date.class));
    dto.setFechaExpiracion(generateRandom(Date.class));
    dto.setCosto(generateRandom(Double.class));
    dto.setName(generateRandom(String.class));
    dto.setLugar(generateRandom(String.class));

    itemPersistence.updateItem(dto);

    ItemEntity resp = em.find(ItemEntity.class, entity.getId());

    Assert.assertEquals(dto.getFechaLlegada(), resp.getFechaLlegada());
    Assert.assertEquals(dto.getFechaExpiracion(), resp.getFechaExpiracion());
    Assert.assertEquals(dto.getCosto(), resp.getCosto());
    Assert.assertEquals(dto.getName(), resp.getName());
    Assert.assertEquals(dto.getLugar(), resp.getLugar());
  }
  @Test
  public void createItemTest() {
    ItemDTO ldto = new ItemDTO();
    ldto.setCantidadItem(generateRandom(Integer.class));
    ldto.setFechaExpiracion(generateRandom(Date.class));
    ldto.setName(generateRandom(String.class));
    ldto.setPrecio(generateRandom(Double.class));
    ldto.setBodega(generateRandom(String.class));
    ldto.setProductoaId(generateRandom(Long.class));

    ItemDTO result = itemLogicService.createItem(ldto);

    Assert.assertNotNull(result);

    ItemDTO pdto = itemPersistence.getItem(result.getId());

    Assert.assertEquals(ldto.getCantidadItem(), pdto.getCantidadItem());
    Assert.assertEquals(ldto.getFechaExpiracion(), pdto.getFechaExpiracion());
    Assert.assertEquals(ldto.getName(), pdto.getName());
    Assert.assertEquals(ldto.getPrecio(), pdto.getPrecio());
    Assert.assertEquals(ldto.getBodega(), pdto.getBodega());
    Assert.assertEquals(ldto.getProductoaId(), pdto.getProductoaId());
  }
 private void clearData() {
   List<ItemDTO> dtos = itemPersistence.getItems();
   for (ItemDTO dto : dtos) {
     itemPersistence.deleteItem(dto.getId());
   }
 }