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));
|
}
|
}
|