### Question:
DefaultDocumentEventPersistManager implements DocumentEventPersistManager { @Override public void firePreDocument(DocumentEntity entity) { documentEntityPrePersistEvent.fire(DocumentEntityPrePersist.of(entity)); }  @Override void firePreDocument(DocumentEntity entity); @Override void firePostDocument(DocumentEntity entity); @Override void firePreEntity(T entity); @Override void firePostEntity(T entity); @Override void firePreDocumentEntity(T entity); @Override void firePostDocumentEntity(T entity); @Override void firePreQuery(DocumentQuery query); @Override void firePreDeleteQuery(DocumentDeleteQuery query);  }### Answer:
@Test public void shouldFirePreDocument() { DocumentEntity entity = DocumentEntity.of("collection"); subject.firePreDocument(entity); ArgumentCaptor<DocumentEntityPrePersist> captor = ArgumentCaptor.forClass(DocumentEntityPrePersist.class); verify(documentEntityPrePersistEvent).fire(captor.capture()); DocumentEntityPrePersist captorValue = captor.getValue(); assertEquals(entity, captorValue.getEntity()); }