RM-2440. Ensuring that users reclassifying content see the correct set of levels.

Added a new test case where an admin and an RM Manager (only cleared to secret) both try to reclassify a record.
Added a new group (GROUP_RM_MANAGER_FILE_CATEGORY_ONE) for an RM Manager who can file records as well as read.
Added some utility methods and fields.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@109524 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Neil McErlean
2015-08-04 11:20:07 +00:00
parent 39142b119b
commit fbeafa2b6e
2 changed files with 53 additions and 0 deletions

View File

@@ -63,6 +63,40 @@ public final class RMCollectionUtils
return duplicateElems;
}
/** Returns the head (element at index 0) of the provided List.
*
* @param l the list whose head is sought.
* @param <T> the type of the List.
* @return the head element or {@code null} for the empty list.
* @throws NullPointerException if l is {@code null}
*/
public static <T> T head(List<T> l)
{
return l.isEmpty() ? null : l.get(0);
}
/**
* Returns the tail of the provided List i&#46;e&#46; the sublist which contains
* all elements of the given list except the {@link #head(List) head}.
*
* @param l the list whose tail is sought.
* @param <T> the type of the List.
* @return the tail sublist, which will be an empty list if the provided list had only a single element.
* @throws NullPointerException if l is {@code null}
* @throws UnsupportedOperationException if the provided list was empty.
*/
public static <T> List<T> tail(List<T> l)
{
if (l.isEmpty())
{
throw new UnsupportedOperationException("Cannot get tail of empty list.");
}
else
{
return l.subList(1, l.size());
}
}
/**
* This enum represents a change in an entry between 2 collections.
*/

View File

@@ -20,8 +20,13 @@
package org.alfresco.module.org_alfresco_module_rm.util;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static org.alfresco.module.org_alfresco_module_rm.test.util.ExceptionUtils.expectedException;
import static org.alfresco.module.org_alfresco_module_rm.util.RMCollectionUtils.diffKey;
import static org.alfresco.module.org_alfresco_module_rm.util.RMCollectionUtils.head;
import static org.alfresco.module.org_alfresco_module_rm.util.RMCollectionUtils.tail;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.alfresco.module.org_alfresco_module_rm.util.RMCollectionUtils.Difference;
@@ -75,4 +80,18 @@ public class RMCollectionUtilsUnitTest
assertEquals(Difference.UNCHANGED, diffKey(mapA, mapB, -1));
assertEquals(Difference.CHANGED, diffKey(mapA, mapB, 3));
}
@Test public void tailsOfLists()
{
assertEquals(asList(2), tail(asList(1, 2)));
assertEquals(emptyList(), tail(asList(1)));
expectedException(UnsupportedOperationException.class, () -> tail(emptyList()));
}
@Test public void headsOfLists()
{
assertEquals("a", head(asList("a", "b")));
assertEquals("a", head(asList("a")));
assertNull(head(emptyList()));
}
}