package jnpf.flowable.service;
|
|
import jnpf.exception.DataException;
|
import jnpf.flowable.model.filepermission.WorkflowFileCheckpoint;
|
import jnpf.flowable.util.filepermission.FilePermissionSnapshot;
|
import org.junit.Test;
|
import org.springframework.beans.factory.ObjectProvider;
|
import java.util.*;
|
import java.util.function.Consumer;
|
import static org.mockito.Mockito.*;
|
import static org.junit.Assert.*;
|
|
public class WorkflowFileCheckpointSupportTest {
|
@Test public void legacyProcessContinuesWithoutResolvingSharedImplementation() {
|
FilePermissionSnapshotService snapshots = mock(FilePermissionSnapshotService.class);
|
ObjectProvider<WorkflowFileCheckpoint> provider = mock(ObjectProvider.class);
|
Map<String,Object> input = new HashMap<>(); List<Map<String,Object>> seen = new ArrayList<>();
|
new WorkflowFileCheckpointSupport(snapshots,provider).save("task","form",input,seen::add);
|
assertSame(input,seen.get(0)); verifyNoInteractions(provider);
|
}
|
@Test public void controlledProcessCannotSilentlySkipUnavailableImplementation() {
|
FilePermissionSnapshotService snapshots = mock(FilePermissionSnapshotService.class);
|
when(snapshots.find("task")).thenReturn(mock(FilePermissionSnapshot.class));
|
ObjectProvider<WorkflowFileCheckpoint> provider = mock(ObjectProvider.class);
|
Consumer<Map<String,Object>> continuation = mock(Consumer.class);
|
try { new WorkflowFileCheckpointSupport(snapshots,provider).save("task","form",Map.of(),continuation); fail("missing integration"); }
|
catch (DataException expected) { }
|
verifyNoInteractions(continuation);
|
}
|
@Test public void forwardsHandlingReferenceWithoutAddingAnotherSave() {
|
FilePermissionSnapshotService snapshots = mock(FilePermissionSnapshotService.class);
|
when(snapshots.find("task")).thenReturn(mock(FilePermissionSnapshot.class));
|
ObjectProvider<WorkflowFileCheckpoint> provider = mock(ObjectProvider.class);
|
WorkflowFileCheckpoint service = mock(WorkflowFileCheckpoint.class);
|
when(provider.getIfAvailable()).thenReturn(service);
|
Map<String,Object> data = Map.of(); Consumer<Map<String,Object>> continuation = mock(Consumer.class);
|
new WorkflowFileCheckpointSupport(snapshots, provider).save("task", "form", "operator", data, continuation);
|
verify(service).save("task", "form", "operator", data, continuation);
|
verifyNoMoreInteractions(service);
|
}
|
}
|