刘光辉
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
34
35
36
37
38
39
40
41
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);
    }
}