刘光辉
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
package jnpf.fileStorage.dms;
 
import jnpf.dms.DmsPersistentPdfRecoveryApi;
import jnpf.dmsEntity.preview.model.DmsFilePreviewTicket;
import jnpf.dmsEntity.storage.form.DmsPersistentPdfInvalidationForm;
import jnpf.dmsEntity.storage.model.DmsPersistentPdfSource;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
 
import java.util.UUID;
 
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
 
public class DmsPersistentPdfRecoveryReporterTest {
    @Test
    public void sendsBoundInvalidationAndSwallowsRemoteFailure() {
        DmsPersistentPdfRecoveryApi api = mock(DmsPersistentPdfRecoveryApi.class);
        DmsPersistentPdfRecoveryReporter reporter = new DmsPersistentPdfRecoveryReporter(api);
        UUID versionId = UUID.randomUUID();
        DmsPersistentPdfSource source = new DmsPersistentPdfSource();
        source.setObjectKey("dms-derived/pdf/version/source.pdf");
        source.setSourceChecksumSha256("a".repeat(64));
        DmsFilePreviewTicket ticket = new DmsFilePreviewTicket();
        ticket.setTenantId("tenant-1");
        ticket.setFileVersionId(versionId);
        ticket.setPdfSource(source);
        when(api.invalidate(anyString(), any())).thenThrow(new RuntimeException("offline"));
 
        reporter.report(ticket, "missing");
 
        ArgumentCaptor<DmsPersistentPdfInvalidationForm> form =
                ArgumentCaptor.forClass(DmsPersistentPdfInvalidationForm.class);
        verify(api).invalidate(eq("jnpf-file"), form.capture());
        assertEquals("tenant-1", form.getValue().getTenantId());
        assertEquals(versionId, form.getValue().getFileVersionId());
        assertEquals(source.getObjectKey(), form.getValue().getObjectKey());
        assertEquals(source.getSourceChecksumSha256(), form.getValue().getSourceChecksumSha256());
    }
}