### Question:
DocumentResourceFacadeImp extends CoreDBServiceFacadeImp<Document, Long> implements DocumentResourceFacade { @Override public DocumentDTO editDocument(DocumentDTO doc) throws PropertyNotSetException { try { Document d = doc.toEntity(); Document oldDoc = getById(d.getDocumentId()); if (oldDoc != null) { oldDoc = em.merge(d); return oldDoc != null ? new DocumentDTO(oldDoc) : null; } else { throw new RuntimeException("Not found"); } } catch (Exception e) { logger.error("Exception in merging/updating document: " + doc.getDocumentID(), e); } return null; } DocumentResourceFacadeImp(); @Override void updateHasHumanLabel(DocumentDTO document); @Override List<DocumentDTO> getDocumentCollectionForNominalLabel(Criterion criterion); @Override int deleteNoLabelDocument(DocumentDTO document); @Override int deleteNoLabelDocument(List<DocumentDTO> collection); @Override int deleteUnassignedDocument(DocumentDTO document); @Override int deleteUnassignedDocument(Long documentID); @Override int deleteUnassignedDocumentCollection(List<Long> documentIDList); @Override int deleteStaleDocuments(String joinType, String joinTable, String joinColumn,
			String sortOrder, String[] orderBy, 
			final String maxTaskAge, final String scanInterval); @Override DocumentDTO addDocument(DocumentDTO doc); @Override DocumentDTO editDocument(DocumentDTO doc); @Override Integer deleteDocument(DocumentDTO doc); @Override List<DocumentDTO> findByCriteria(String columnName, Object value); @Override DocumentDTO findDocumentByID(Long id); @Override List<DocumentDTO> findDocumentsByCrisisID(Long crisisId); @Override DocumentDTO getDocumentWithAllFieldsByID(Long id); @Override boolean isDocumentExists(Long id); @Override List<DocumentDTO> getAllDocuments(); @Override List<DocumentDTO> findLabeledDocumentsByCrisisID(Long crisisId); @Override List<DocumentDTO> findUnLabeledDocumentsByCrisisID(Long crisisId); @Override Integer getDocumentCountForNominalLabelAndCrisis(Long nominalLabelID, String crisisCode); @Override List<DocumentDTO> getDocumentCollectionWithNominalLabelData(Long nominalLabelID); @Override Integer getUnlabeledDocumentsCountByCrisisID(Long crisisId); @Override boolean deleteDocuments(List<DocumentDTO> documents); @Override List<Long> getUnassignedDocumentIDsByCrisisID(Long crisisID, Integer count); @Override List<DocumentDTO> getDocumentForNominalLabelAndCrisis(List<Long> nominalLabelID, Long crisisId);  }### Answer:
@Test public void testEditDocument() { try { entityManager.getTransaction().begin(); documentDTO = documentResourceFacadeImp.addDocument(documentDTO); entityManager.getTransaction().commit(); documentDTO.setHasHumanLabels(true); Date date = new Date(); documentDTO.setReceivedAt(date); documentDTO = documentResourceFacadeImp.editDocument(documentDTO); assertEquals(date, documentDTO.getReceivedAt()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while editting the document "+ex.getMessage()); fail("testEditDocument failed"); } }