刘光辉
4 小时以前 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
package jnpf.dmsService;
 
import jnpf.base.ActionResult;
import jnpf.dms.DmsTicketLifecycleApi;
import jnpf.dms.DmsTicketLifecycleChecks;
import jnpf.dmsEntity.center.DmsTicketLifecycleRequest;
import jnpf.exception.DataException;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
 
class DmsTicketLifecycleChecksTest {
    DmsTicketLifecycleApi api=mock(DmsTicketLifecycleApi.class);
    UUID version=UUID.randomUUID();
    @Test void forwardsTenantVersionAndExplicitHistoricalContext() {
        ActionResult<Boolean> ok=new ActionResult<>();ok.setCode(200);ok.setData(true);
        when(api.readable(eq("jnpf-file"),any())).thenReturn(ok);
        DmsTicketLifecycleChecks.require(api,"jnpf-file","tenant",version,true);
        ArgumentCaptor<DmsTicketLifecycleRequest> request=ArgumentCaptor.forClass(DmsTicketLifecycleRequest.class);
        verify(api).readable(eq("jnpf-file"),request.capture());
        assertEquals("tenant",request.getValue().getTenantId());assertEquals(version,request.getValue().getFileVersionId());
        assertTrue(request.getValue().isHistoricalAccess());
    }
    @Test void deniedMissingAndFailedResponsesNeverPermitAnOldTicket() {
        ActionResult<Boolean> denied=new ActionResult<>();denied.setCode(200);denied.setData(false);
        ActionResult<Boolean> failed=new ActionResult<>();failed.setCode(503);failed.setData(true);
        when(api.readable(any(),any())).thenReturn(null,denied,failed).thenThrow(new IllegalStateException("offline"));
        for(int i=0;i<3;i++)assertThrows(DataException.class,()->DmsTicketLifecycleChecks.require(api,"jnpf-file","tenant",version,false));
        assertThrows(IllegalStateException.class,()->DmsTicketLifecycleChecks.require(api,"jnpf-file","tenant",version,false));
    }
}