刘光辉
117 分钟以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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));
    }
}