package jnpf.flowable.service;
|
|
import jnpf.flowable.mapper.FilePermissionRuntimeMapper;
|
import jnpf.flowable.mapper.TemplateNodeMapper;
|
import jnpf.flowable.model.filepermission.FilePermissionNativeState;
|
import jnpf.flowable.util.ServiceUtil;
|
import jnpf.flowable.util.filepermission.FilePermissionSnapshot;
|
import org.junit.Test;
|
import java.util.*;
|
import static org.junit.Assert.*;
|
import static org.mockito.Mockito.*;
|
|
public class NativeFilePermissionReadReuseTest {
|
@Test public void reuseSkipsDefinitionRoundTripButStillDetectsConcurrentTransition() {
|
FilePermissionRuntimeMapper mapper = mock(FilePermissionRuntimeMapper.class);
|
TemplateNodeMapper nodes = mock(TemplateNodeMapper.class);
|
ServiceUtil forms = mock(ServiceUtil.class);
|
var service = new NativeFilePermissionRuntimeSource(mapper,nodes,forms);
|
var before = new FilePermissionNativeState(); before.setTaskId("task"); before.setFlowId("flow"); before.setStatus(0); before.setFlowType(1);
|
var after = new FilePermissionNativeState(); after.setTaskId("task"); after.setFlowId("flow"); after.setStatus(1); after.setFlowType(1);
|
when(mapper.find("task")).thenReturn(before,after);
|
when(nodes.getList("flow")).thenReturn(List.of());
|
var snapshot = FilePermissionSnapshot.read(FilePermissionSnapshot.create("tenant","task","flow",Map.of("version",1,"rules",List.of())),"tenant","task");
|
var result = service.readWithPublishedForm("tenant","task","form","user",snapshot,"{\"fields\":[]}");
|
assertTrue(result.transitioning); verify(mapper,times(2)).find("task"); verifyNoInteractions(forms);
|
}
|
}
|