package jnpf.dmsService.pdf;
|
|
import jnpf.dmsMapper.DmsPdfGenerationTaskMapper;
|
import org.junit.jupiter.api.Test;
|
|
import java.util.UUID;
|
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.when;
|
|
class DmsPdfGenerationTaskServiceTest {
|
private final DmsPdfGenerationTaskMapper mapper = mock(DmsPdfGenerationTaskMapper.class);
|
private final DmsPdfGenerationTaskService service = new DmsPdfGenerationTaskService(mapper);
|
|
@Test
|
void enqueuesDocAndDocxButSkipsOtherFiles() {
|
UUID doc = UUID.randomUUID();
|
UUID docx = UUID.randomUUID();
|
UUID pdf = UUID.randomUUID();
|
|
service.enqueueEligible("tenant", doc, "a.DOC", "A".repeat(64));
|
service.enqueueEligible("tenant", docx, "b.docx", "b".repeat(64));
|
service.enqueueEligible("tenant", pdf, "c.pdf", "c".repeat(64));
|
|
verify(mapper).enqueue("tenant", doc, "a".repeat(64));
|
verify(mapper).enqueue("tenant", docx, "b".repeat(64));
|
verify(mapper, never()).enqueue("tenant", pdf, "c".repeat(64));
|
}
|
|
@Test
|
void requeuesMissingWordButSkipsOtherFiles() {
|
UUID docx = UUID.randomUUID();
|
UUID pdf = UUID.randomUUID();
|
|
service.enqueueMissingEligible("tenant", docx, "a.docx", "A".repeat(64));
|
service.enqueueMissingEligible("tenant", pdf, "b.pdf", "b".repeat(64));
|
|
verify(mapper).requeue("tenant", docx, "a".repeat(64));
|
verify(mapper, never()).requeue("tenant", pdf, "b".repeat(64));
|
}
|
|
@Test
|
void invalidationRequeuesOnlyWhenCurrentPdfWasCleared() {
|
jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm form =
|
new jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm();
|
UUID versionId = UUID.randomUUID();
|
form.setTenantId("tenant");
|
form.setFileVersionId(versionId);
|
form.setSourceChecksumSha256("a".repeat(64));
|
form.setObjectKey("dms-derived/pdf/version/source.pdf");
|
when(mapper.clearInvalidPdf("tenant", versionId, "a".repeat(64), form.getObjectKey()))
|
.thenReturn(1);
|
|
service.invalidateAndRequeue(form);
|
|
verify(mapper).requeue("tenant", versionId, "a".repeat(64));
|
}
|
|
@Test
|
void staleInvalidationDoesNotRequeueCurrentPdf() {
|
jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm form =
|
new jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm();
|
UUID versionId = UUID.randomUUID();
|
form.setTenantId("tenant");
|
form.setFileVersionId(versionId);
|
form.setSourceChecksumSha256("a".repeat(64));
|
form.setObjectKey("dms-derived/pdf/version/stale.pdf");
|
|
service.invalidateAndRequeue(form);
|
|
verify(mapper, never()).requeue("tenant", versionId, "a".repeat(64));
|
}
|
}
|