mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Push unstaged changes
This commit is contained in:
@@ -31,7 +31,7 @@ import org.json.JSONObject;
|
|||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
import org.springframework.extensions.surf.util.Content;
|
import org.springframework.extensions.surf.util.Content;
|
||||||
import org.springframework.extensions.webscripts.AbstractWebScript;
|
import org.springframework.extensions.webscripts.AbstractWebScript;
|
||||||
import org.springframework.extensions.webscripts.Container;
|
import org.springframework.extensions.webscripts.Container;
|
||||||
import org.springframework.extensions.webscripts.Description;
|
import org.springframework.extensions.webscripts.Description;
|
||||||
import org.springframework.extensions.webscripts.Description.RequiredCache;
|
import org.springframework.extensions.webscripts.Description.RequiredCache;
|
||||||
@@ -68,7 +68,7 @@ public abstract class BaseWebScriptUnitTest extends BaseUnitTest
|
|||||||
/**
|
/**
|
||||||
* @return declarative webscript
|
* @return declarative webscript
|
||||||
*/
|
*/
|
||||||
protected abstract AbstractWebScript getWebScript();
|
protected abstract AbstractWebScript getWebScript();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return classpath location of webscript template
|
* @return classpath location of webscript template
|
||||||
@@ -136,7 +136,7 @@ public abstract class BaseWebScriptUnitTest extends BaseUnitTest
|
|||||||
*/
|
*/
|
||||||
protected String executeWebScript(Map<String, String> parameters, String content) throws Exception
|
protected String executeWebScript(Map<String, String> parameters, String content) throws Exception
|
||||||
{
|
{
|
||||||
AbstractWebScript webScript = getWebScript();
|
AbstractWebScript webScript = getWebScript();
|
||||||
String template = getWebScriptTemplate();
|
String template = getWebScriptTemplate();
|
||||||
|
|
||||||
// initialise webscript
|
// initialise webscript
|
||||||
@@ -158,7 +158,7 @@ public abstract class BaseWebScriptUnitTest extends BaseUnitTest
|
|||||||
* @return {@link WebScriptRequest} mocked web script request
|
* @return {@link WebScriptRequest} mocked web script request
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
protected WebScriptRequest getMockedWebScriptRequest(AbstractWebScript webScript, final Map<String, String> parameters, String content) throws Exception
|
protected WebScriptRequest getMockedWebScriptRequest(AbstractWebScript webScript, final Map<String, String> parameters, String content) throws Exception
|
||||||
{
|
{
|
||||||
Match match = new Match(null, parameters, null, webScript);
|
Match match = new Match(null, parameters, null, webScript);
|
||||||
org.springframework.extensions.webscripts.Runtime mockedRuntime = mock(org.springframework.extensions.webscripts.Runtime.class);
|
org.springframework.extensions.webscripts.Runtime mockedRuntime = mock(org.springframework.extensions.webscripts.Runtime.class);
|
||||||
|
@@ -23,14 +23,14 @@ import static java.util.Collections.emptyMap;
|
|||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.anyBoolean;
|
import static org.mockito.Matchers.anyBoolean;
|
||||||
import static org.mockito.Matchers.anyLong;
|
import static org.mockito.Matchers.anyLong;
|
||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.eq;
|
||||||
import static org.mockito.Mockito.doAnswer;
|
import static org.mockito.Mockito.doAnswer;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -61,9 +61,9 @@ import org.alfresco.repo.domain.patch.PatchDAO;
|
|||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.repo.web.scripts.content.ContentStreamer;
|
import org.alfresco.repo.web.scripts.content.ContentStreamer;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
import org.alfresco.service.cmr.model.FileInfo;
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
@@ -79,11 +79,11 @@ import org.mockito.Mock;
|
|||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
import org.springframework.extensions.webscripts.AbstractWebScript;
|
import org.springframework.extensions.webscripts.AbstractWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DynamicAuthoritiesGet Unit Test
|
* DynamicAuthoritiesGet Unit Test
|
||||||
@@ -114,17 +114,17 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
private TransactionService mockedTransactionService;
|
private TransactionService mockedTransactionService;
|
||||||
@Mock
|
@Mock
|
||||||
private RetryingTransactionHelper mockedRetryingTransactionHelper;
|
private RetryingTransactionHelper mockedRetryingTransactionHelper;
|
||||||
@Mock
|
@Mock
|
||||||
private ContentStreamer contentStreamer;
|
private ContentStreamer contentStreamer;
|
||||||
@Mock
|
@Mock
|
||||||
private FileFolderService mockedFileFolderService;
|
private FileFolderService mockedFileFolderService;
|
||||||
|
|
||||||
/** test component */
|
/** test component */
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
private DynamicAuthoritiesGet webScript;
|
private DynamicAuthoritiesGet webScript;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AbstractWebScript getWebScript()
|
protected AbstractWebScript getWebScript()
|
||||||
{
|
{
|
||||||
return webScript;
|
return webScript;
|
||||||
}
|
}
|
||||||
@@ -146,7 +146,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
webScript.setNodeService(mockedNodeService);
|
webScript.setNodeService(mockedNodeService);
|
||||||
webScript.setPermissionService(mockedPermissionService);
|
webScript.setPermissionService(mockedPermissionService);
|
||||||
webScript.setExtendedSecurityService(mockedExtendedSecurityService);
|
webScript.setExtendedSecurityService(mockedExtendedSecurityService);
|
||||||
webScript.setFileFolderService(mockedFileFolderService);
|
webScript.setFileFolderService(mockedFileFolderService);
|
||||||
// setup retrying transaction helper
|
// setup retrying transaction helper
|
||||||
Answer<Object> doInTransactionAnswer = new Answer<Object>()
|
Answer<Object> doInTransactionAnswer = new Answer<Object>()
|
||||||
{
|
{
|
||||||
@@ -174,7 +174,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
/**
|
/**
|
||||||
* Given that there are no nodes with the extended security aspect
|
* Given that there are no nodes with the extended security aspect
|
||||||
* When the action is executed Nothing happens
|
* When the action is executed Nothing happens
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({ "unchecked" })
|
@SuppressWarnings({ "unchecked" })
|
||||||
@@ -211,7 +211,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
* Then the aspect is removed
|
* Then the aspect is removed
|
||||||
* And the dynamic authorities permissions are cleared
|
* And the dynamic authorities permissions are cleared
|
||||||
* And extended security is set via the updated API
|
* And extended security is set via the updated API
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -220,7 +220,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
@@ -256,8 +256,8 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
/**
|
/**
|
||||||
* Given that there are non-records with the extended security aspect
|
* Given that there are non-records with the extended security aspect
|
||||||
* When the web script is executed
|
* When the web script is executed
|
||||||
* Then the aspect is removed And the dynamic authorities permissions are cleared
|
* Then the aspect is removed And the dynamic authorities permissions are cleared
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -266,7 +266,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
@@ -302,50 +302,50 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
@Test
|
@Test
|
||||||
public void missingBatchSizeParameter() throws Exception
|
public void missingBatchSizeParameter() throws Exception
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
executeJSONWebScript(emptyMap());
|
executeJSONWebScript(emptyMap());
|
||||||
fail("Expected exception as parameter batchsize is mandatory.");
|
fail("Expected exception as parameter batchsize is mandatory.");
|
||||||
}
|
}
|
||||||
catch (WebScriptException e)
|
catch (WebScriptException e)
|
||||||
{
|
{
|
||||||
assertEquals("If parameter batchsize is not provided then 'Bad request' should be returned.",
|
assertEquals("If parameter batchsize is not provided then 'Bad request' should be returned.",
|
||||||
Status.STATUS_BAD_REQUEST, e.getStatus());
|
Status.STATUS_BAD_REQUEST, e.getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void invalidBatchSizeParameter() throws Exception
|
public void invalidBatchSizeParameter() throws Exception
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "dd");
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "dd");
|
||||||
executeJSONWebScript(parameters);
|
executeJSONWebScript(parameters);
|
||||||
fail("Expected exception as parameter batchsize is invalid.");
|
fail("Expected exception as parameter batchsize is invalid.");
|
||||||
}
|
}
|
||||||
catch (WebScriptException e)
|
catch (WebScriptException e)
|
||||||
{
|
{
|
||||||
assertEquals("If parameter batchsize is invalid then 'Bad request' should be returned.",
|
assertEquals("If parameter batchsize is invalid then 'Bad request' should be returned.",
|
||||||
Status.STATUS_BAD_REQUEST, e.getStatus());
|
Status.STATUS_BAD_REQUEST, e.getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void batchSizeShouldBeGraterThanZero() throws Exception
|
public void batchSizeShouldBeGraterThanZero() throws Exception
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "0");
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "0");
|
||||||
executeJSONWebScript(parameters);
|
executeJSONWebScript(parameters);
|
||||||
fail("Expected exception as parameter batchsize is not a number greater than 0.");
|
fail("Expected exception as parameter batchsize is not a number greater than 0.");
|
||||||
}
|
}
|
||||||
catch (WebScriptException e)
|
catch (WebScriptException e)
|
||||||
{
|
{
|
||||||
assertEquals("If parameter batchsize is not a number greater than 0 then 'Bad request' should be returned.",
|
assertEquals("If parameter batchsize is not a number greater than 0 then 'Bad request' should be returned.",
|
||||||
Status.STATUS_BAD_REQUEST, e.getStatus());
|
Status.STATUS_BAD_REQUEST, e.getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -367,7 +367,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l,4l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l,4l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
@@ -395,7 +395,7 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l, 4l, 5l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l, 4l, 5l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
@@ -417,302 +417,302 @@ public class DynamicAuthoritiesGetUnitTest extends BaseWebScriptUnitTest impleme
|
|||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed first 4 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed first 4 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
@Test
|
@Test
|
||||||
public void recordsWithExtendedSecurityAspectAndNullWritersAndReaders() throws Exception
|
public void recordsWithExtendedSecurityAspectAndNullWritersAndReaders() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS)).thenReturn(null);
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS)).thenReturn(null);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS)).thenReturn(null);
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS)).thenReturn(null);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4");
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4");
|
||||||
JSONObject json = executeJSONWebScript(parameters);
|
JSONObject json = executeJSONWebScript(parameters);
|
||||||
assertNotNull(json);
|
assertNotNull(json);
|
||||||
String actualJSONString = json.toString();
|
String actualJSONString = json.toString();
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
ArgumentCaptor<Set> readerKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
ArgumentCaptor<Set> readerKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
||||||
ArgumentCaptor<Set> writersKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
ArgumentCaptor<Set> writersKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
||||||
|
|
||||||
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_READERS));
|
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_READERS));
|
||||||
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_WRITERS));
|
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_WRITERS));
|
||||||
verify(mockedNodeService, times(3)).removeAspect(any(NodeRef.class), eq(ASPECT_EXTENDED_SECURITY));
|
verify(mockedNodeService, times(3)).removeAspect(any(NodeRef.class), eq(ASPECT_EXTENDED_SECURITY));
|
||||||
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
||||||
eq(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
eq(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
||||||
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
||||||
eq(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
eq(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
||||||
verify(mockedExtendedSecurityService, times(3)).set(any(NodeRef.class), readerKeysCaptor.capture(),
|
verify(mockedExtendedSecurityService, times(3)).set(any(NodeRef.class), readerKeysCaptor.capture(),
|
||||||
writersKeysCaptor.capture());
|
writersKeysCaptor.capture());
|
||||||
List<Set> allReaderKeySets = readerKeysCaptor.getAllValues();
|
List<Set> allReaderKeySets = readerKeysCaptor.getAllValues();
|
||||||
List<Set> allWritersKeySets = writersKeysCaptor.getAllValues();
|
List<Set> allWritersKeySets = writersKeysCaptor.getAllValues();
|
||||||
for (Set keySet : allReaderKeySets)
|
for (Set keySet : allReaderKeySets)
|
||||||
{
|
{
|
||||||
assertNull(keySet);
|
assertNull(keySet);
|
||||||
}
|
}
|
||||||
for (Set keySet : allWritersKeySets)
|
for (Set keySet : allWritersKeySets)
|
||||||
{
|
{
|
||||||
assertNull(keySet);
|
assertNull(keySet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
@Test
|
@Test
|
||||||
public void recordsWithExtendedSecurityAspectAndNullWriters() throws Exception
|
public void recordsWithExtendedSecurityAspectAndNullWriters() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
|
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS)).thenReturn(null);
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS)).thenReturn(null);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4");
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4");
|
||||||
JSONObject json = executeJSONWebScript(parameters);
|
JSONObject json = executeJSONWebScript(parameters);
|
||||||
assertNotNull(json);
|
assertNotNull(json);
|
||||||
String actualJSONString = json.toString();
|
String actualJSONString = json.toString();
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
ArgumentCaptor<Set> readerKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
ArgumentCaptor<Set> readerKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
||||||
ArgumentCaptor<Set> writersKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
ArgumentCaptor<Set> writersKeysCaptor = ArgumentCaptor.forClass(Set.class);
|
||||||
|
|
||||||
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_READERS));
|
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_READERS));
|
||||||
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_WRITERS));
|
verify(mockedNodeService, times(3)).getProperty(any(NodeRef.class), eq(PROP_WRITERS));
|
||||||
verify(mockedNodeService, times(3)).removeAspect(any(NodeRef.class), eq(ASPECT_EXTENDED_SECURITY));
|
verify(mockedNodeService, times(3)).removeAspect(any(NodeRef.class), eq(ASPECT_EXTENDED_SECURITY));
|
||||||
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
||||||
eq(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
eq(ExtendedReaderDynamicAuthority.EXTENDED_READER));
|
||||||
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
verify(mockedPermissionService, times(3)).clearPermission(any(NodeRef.class),
|
||||||
eq(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
eq(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
|
||||||
verify(mockedExtendedSecurityService, times(3)).set(any(NodeRef.class), readerKeysCaptor.capture(),
|
verify(mockedExtendedSecurityService, times(3)).set(any(NodeRef.class), readerKeysCaptor.capture(),
|
||||||
writersKeysCaptor.capture());
|
writersKeysCaptor.capture());
|
||||||
List<Set> allReaderKeySets = readerKeysCaptor.getAllValues();
|
List<Set> allReaderKeySets = readerKeysCaptor.getAllValues();
|
||||||
List<Set> allWritersKeySets = writersKeysCaptor.getAllValues();
|
List<Set> allWritersKeySets = writersKeysCaptor.getAllValues();
|
||||||
for (Set keySet : allReaderKeySets)
|
for (Set keySet : allReaderKeySets)
|
||||||
{
|
{
|
||||||
assertNotNull(keySet);
|
assertNotNull(keySet);
|
||||||
}
|
}
|
||||||
for (Set keySet : allWritersKeySets)
|
for (Set keySet : allWritersKeySets)
|
||||||
{
|
{
|
||||||
assertNull(keySet);
|
assertNull(keySet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given I have records that require migration
|
* Given I have records that require migration
|
||||||
* And I am interested in knowning which records are migrated
|
* And I am interested in knowning which records are migrated
|
||||||
* When I run the migration tool
|
* When I run the migration tool
|
||||||
* Then I will be returned a CSV file containing the name and node reference of the record migrated
|
* Then I will be returned a CSV file containing the name and node reference of the record migrated
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void processWithCSVFile() throws Exception
|
public void processWithCSVFile() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
String name = "name" + i;
|
String name = "name" + i;
|
||||||
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
||||||
});
|
});
|
||||||
|
|
||||||
ArgumentCaptor<File> csvFileCaptor = ArgumentCaptor.forClass(File.class);
|
ArgumentCaptor<File> csvFileCaptor = ArgumentCaptor.forClass(File.class);
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4", "export",
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4", "export",
|
||||||
"true");
|
"true");
|
||||||
executeWebScript(parameters);
|
executeWebScript(parameters);
|
||||||
|
|
||||||
verify(contentStreamer, times(1)).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
verify(contentStreamer, times(1)).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
||||||
csvFileCaptor.capture(), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
csvFileCaptor.capture(), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
||||||
|
|
||||||
File fileForDownload = csvFileCaptor.getValue();
|
File fileForDownload = csvFileCaptor.getValue();
|
||||||
assertNotNull(fileForDownload);
|
assertNotNull(fileForDownload);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given that I have record that require migration
|
* Given that I have record that require migration
|
||||||
* And I'm not interested in knowing which records were migrated
|
* And I'm not interested in knowing which records were migrated
|
||||||
* When I run the migration tool
|
* When I run the migration tool
|
||||||
* Then I will not be returned a CSV file of details.
|
* Then I will not be returned a CSV file of details.
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void processedWithouthCSVFile() throws Exception
|
public void processedWithouthCSVFile() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
when(mockedPatchDAO.getNodesByAspectQNameId(eq(ASPECT_ID), anyLong(), anyLong())).thenReturn(ids)
|
||||||
.thenReturn(Collections.emptyList());
|
.thenReturn(Collections.emptyList());
|
||||||
|
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
when(mockedNodeDAO.getNodePair(i)).thenReturn(new Pair<Long, NodeRef>(i, nodeRef));
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
});
|
});
|
||||||
|
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4", "export",
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "maxProcessedRecords", "4", "export",
|
||||||
"false");
|
"false");
|
||||||
JSONObject json = executeJSONWebScript(parameters);
|
JSONObject json = executeJSONWebScript(parameters);
|
||||||
assertNotNull(json);
|
assertNotNull(json);
|
||||||
String actualJSONString = json.toString();
|
String actualJSONString = json.toString();
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
|
|
||||||
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
||||||
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void invalidParentNodeRefParameter() throws Exception
|
public void invalidParentNodeRefParameter() throws Exception
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "parentNodeRef", "invalidNodeRef");
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "parentNodeRef", "invalidNodeRef");
|
||||||
executeJSONWebScript(parameters);
|
executeJSONWebScript(parameters);
|
||||||
fail("Expected exception as parameter parentNodeRef is invalid.");
|
fail("Expected exception as parameter parentNodeRef is invalid.");
|
||||||
}
|
}
|
||||||
catch (WebScriptException e)
|
catch (WebScriptException e)
|
||||||
{
|
{
|
||||||
assertEquals("If parameter parentNodeRef is invalid then 'Internal server error' should be returned.",
|
assertEquals("If parameter parentNodeRef is invalid then 'Internal server error' should be returned.",
|
||||||
Status.STATUS_INTERNAL_SERVER_ERROR, e.getStatus());
|
Status.STATUS_INTERNAL_SERVER_ERROR, e.getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void inexistentParentNodeRefParameter() throws Exception
|
public void inexistentParentNodeRefParameter() throws Exception
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeService.exists(parentNodeRef)).thenReturn(false);
|
when(mockedNodeService.exists(parentNodeRef)).thenReturn(false);
|
||||||
// Set up parameters.
|
// Set up parameters.
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "parentNodeRef",
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "10", "parentNodeRef",
|
||||||
parentNodeRef.toString());
|
parentNodeRef.toString());
|
||||||
executeJSONWebScript(parameters);
|
executeJSONWebScript(parameters);
|
||||||
fail("Expected exception as parameter parentNodeRef does not exist.");
|
fail("Expected exception as parameter parentNodeRef does not exist.");
|
||||||
}
|
}
|
||||||
catch (WebScriptException e)
|
catch (WebScriptException e)
|
||||||
{
|
{
|
||||||
assertEquals("If parameter parentNodeRef is does not exist then 'Bad Reequest' should be returned.",
|
assertEquals("If parameter parentNodeRef is does not exist then 'Bad Reequest' should be returned.",
|
||||||
Status.STATUS_BAD_REQUEST, e.getStatus());
|
Status.STATUS_BAD_REQUEST, e.getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void processedWithParentNodeRef() throws Exception
|
public void processedWithParentNodeRef() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l).collect(Collectors.toList());
|
||||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
List<FileInfo> children = new ArrayList<FileInfo>();
|
List<FileInfo> children = new ArrayList<FileInfo>();
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(true);
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
String name = "name" + i;
|
String name = "name" + i;
|
||||||
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
||||||
FileInfo mockedFileInfo = mock(FileInfo.class);
|
FileInfo mockedFileInfo = mock(FileInfo.class);
|
||||||
when(mockedFileInfo.getNodeRef()).thenReturn(nodeRef);
|
when(mockedFileInfo.getNodeRef()).thenReturn(nodeRef);
|
||||||
children.add(mockedFileInfo);
|
children.add(mockedFileInfo);
|
||||||
});
|
});
|
||||||
when(mockedFileFolderService.search(eq(parentNodeRef), eq("*"), eq(true), eq(true), eq(true)))
|
when(mockedFileFolderService.search(eq(parentNodeRef), eq("*"), eq(true), eq(true), eq(true)))
|
||||||
.thenReturn(children);
|
.thenReturn(children);
|
||||||
|
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "3", "maxProcessedRecords", "4", "export",
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "3", "maxProcessedRecords", "4", "export",
|
||||||
"false", "parentNodeRef", parentNodeRef.toString());
|
"false", "parentNodeRef", parentNodeRef.toString());
|
||||||
JSONObject json = executeJSONWebScript(parameters);
|
JSONObject json = executeJSONWebScript(parameters);
|
||||||
assertNotNull(json);
|
assertNotNull(json);
|
||||||
String actualJSONString = json.toString();
|
String actualJSONString = json.toString();
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 3 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
|
|
||||||
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
||||||
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void processedWithParentNodeRefWithFirstTwoBatchesAlreadyProcessed() throws Exception
|
public void processedWithParentNodeRefWithFirstTwoBatchesAlreadyProcessed() throws Exception
|
||||||
{
|
{
|
||||||
List<Long> ids = Stream.of(1l, 2l, 3l, 4l, 5l, 6l, 7l, 8l).collect(Collectors.toList());
|
List<Long> ids = Stream.of(1l, 2l, 3l, 4l, 5l, 6l, 7l, 8l).collect(Collectors.toList());
|
||||||
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef parentNodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
List<FileInfo> children = new ArrayList<FileInfo>();
|
List<FileInfo> children = new ArrayList<FileInfo>();
|
||||||
ids.stream().forEach((i) -> {
|
ids.stream().forEach((i) -> {
|
||||||
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
NodeRef nodeRef = AlfMock.generateNodeRef(mockedNodeService);
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT_RECORD)).thenReturn(true);
|
||||||
if (i <= 6l)
|
if (i <= 6l)
|
||||||
{
|
{
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(false);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(true);
|
when(mockedNodeService.hasAspect(nodeRef, ASPECT)).thenReturn(true);
|
||||||
}
|
}
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_READERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
when(mockedNodeService.getProperty(nodeRef, PROP_WRITERS))
|
||||||
.thenReturn((Serializable) Collections.emptyMap());
|
.thenReturn((Serializable) Collections.emptyMap());
|
||||||
String name = "name" + i;
|
String name = "name" + i;
|
||||||
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
when(mockedNodeService.getProperty(nodeRef, ContentModel.PROP_NAME)).thenReturn((Serializable) name);
|
||||||
FileInfo mockedFileInfo = mock(FileInfo.class);
|
FileInfo mockedFileInfo = mock(FileInfo.class);
|
||||||
when(mockedFileInfo.getNodeRef()).thenReturn(nodeRef);
|
when(mockedFileInfo.getNodeRef()).thenReturn(nodeRef);
|
||||||
children.add(mockedFileInfo);
|
children.add(mockedFileInfo);
|
||||||
});
|
});
|
||||||
when(mockedFileFolderService.search(eq(parentNodeRef), eq("*"), eq(true), eq(true), eq(true)))
|
when(mockedFileFolderService.search(eq(parentNodeRef), eq("*"), eq(true), eq(true), eq(true)))
|
||||||
.thenReturn(children);
|
.thenReturn(children);
|
||||||
|
|
||||||
Map<String, String> parameters = ImmutableMap.of("batchsize", "3", "parentNodeRef", parentNodeRef.toString());
|
Map<String, String> parameters = ImmutableMap.of("batchsize", "3", "parentNodeRef", parentNodeRef.toString());
|
||||||
JSONObject json = executeJSONWebScript(parameters);
|
JSONObject json = executeJSONWebScript(parameters);
|
||||||
assertNotNull(json);
|
assertNotNull(json);
|
||||||
String actualJSONString = json.toString();
|
String actualJSONString = json.toString();
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 2 records.\"}";
|
String expectedJSONString = "{\"responsestatus\":\"success\",\"message\":\"Processed 2 records.\"}";
|
||||||
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
assertEquals(mapper.readTree(expectedJSONString), mapper.readTree(actualJSONString));
|
||||||
|
|
||||||
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
verify(contentStreamer, never()).streamContent(any(WebScriptRequest.class), any(WebScriptResponse.class),
|
||||||
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
any(File.class), any(Long.class), any(Boolean.class), any(String.class), any(Map.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user