mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
updates after review:
update the getChildrenPropertyValues return type update the existing tests from RecordsManagementQueryDAOImplTest that test getChildrenPropertyValues() method
This commit is contained in:
@@ -21,7 +21,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- Get distinct property values of children for a given property qname -->
|
<!-- Get distinct property values of children for a given property qname -->
|
||||||
<select id="select_GetPropertyValuesOfChildren"
|
<select id="select_GetStringPropertyValuesOfChildren"
|
||||||
parameterType="org.alfresco.module.org_alfresco_module_rm.query.PropertyValuesOfChildrenQueryParams"
|
parameterType="org.alfresco.module.org_alfresco_module_rm.query.PropertyValuesOfChildrenQueryParams"
|
||||||
resultType="java.lang.String">
|
resultType="java.lang.String">
|
||||||
select
|
select
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
package org.alfresco.module.org_alfresco_module_rm.query;
|
package org.alfresco.module.org_alfresco_module_rm.query;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Select parameter for <b>select_GetPropertyValuesOfChildren</b>.
|
* Select parameter for <b>select_GetStringPropertyValuesOfChildren</b>.
|
||||||
*
|
*
|
||||||
* @author Ana Manolache
|
* @author Ana Manolache
|
||||||
* @since 2.6
|
* @since 2.6
|
||||||
|
@@ -27,11 +27,12 @@
|
|||||||
|
|
||||||
package org.alfresco.module.org_alfresco_module_rm.query;
|
package org.alfresco.module.org_alfresco_module_rm.query;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Records management query DAO
|
* Records management query DAO
|
||||||
*
|
*
|
||||||
@@ -57,7 +58,7 @@ public interface RecordsManagementQueryDAO
|
|||||||
*
|
*
|
||||||
* @param parent the parent to evaluate
|
* @param parent the parent to evaluate
|
||||||
* @param property the QName of the property to evaluate
|
* @param property the QName of the property to evaluate
|
||||||
* @return list of property values
|
* @return list of distinct property values
|
||||||
*/
|
*/
|
||||||
public List<String> getChildrenPropertyValues(NodeRef parent, QName property);
|
public Set<String> getChildrenStringPropertyValues(NodeRef parent, QName property);
|
||||||
}
|
}
|
||||||
|
@@ -29,8 +29,9 @@ package org.alfresco.module.org_alfresco_module_rm.query;
|
|||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
@@ -51,8 +52,8 @@ import org.mybatis.spring.SqlSessionTemplate;
|
|||||||
public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO, RecordsManagementModel
|
public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO, RecordsManagementModel
|
||||||
{
|
{
|
||||||
private static final String COUNT_IDENTIFIER = "alfresco.query.rm.select_CountRMIndentifier";
|
private static final String COUNT_IDENTIFIER = "alfresco.query.rm.select_CountRMIndentifier";
|
||||||
private static final String GET_CHILDREN_PROPERTY_VALUES = "select_GetPropertyValuesOfChildren";
|
private static final String GET_CHILDREN_PROPERTY_VALUES = "select_GetStringPropertyValuesOfChildren";
|
||||||
|
|
||||||
/** SQL session template */
|
/** SQL session template */
|
||||||
protected SqlSessionTemplate template;
|
protected SqlSessionTemplate template;
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getChildrenPropertyValues(NodeRef parent, QName property)
|
public Set<String> getChildrenStringPropertyValues(NodeRef parent, QName property)
|
||||||
{
|
{
|
||||||
PropertyValuesOfChildrenQueryParams queryParams = new PropertyValuesOfChildrenQueryParams();
|
PropertyValuesOfChildrenQueryParams queryParams = new PropertyValuesOfChildrenQueryParams();
|
||||||
|
|
||||||
@@ -134,12 +135,12 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
Pair<Long, QName> pair = qnameDAO.getQName(property);
|
Pair<Long, QName> pair = qnameDAO.getQName(property);
|
||||||
if (pair == null)
|
if (pair == null)
|
||||||
{
|
{
|
||||||
return Collections.emptyList();
|
return Collections.emptySet();
|
||||||
}
|
}
|
||||||
queryParams.setPropertyQnameId(pair.getFirst());
|
queryParams.setPropertyQnameId(pair.getFirst());
|
||||||
|
|
||||||
// Perform the query
|
// Perform the query
|
||||||
return template.selectList(GET_CHILDREN_PROPERTY_VALUES, queryParams);
|
return new HashSet<String>(template.selectList(GET_CHILDREN_PROPERTY_VALUES, queryParams));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,10 +27,9 @@
|
|||||||
|
|
||||||
package org.alfresco.module.org_alfresco_module_rm.test.legacy.service;
|
package org.alfresco.module.org_alfresco_module_rm.test.legacy.service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.Set;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
@@ -96,12 +95,12 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a folder containing 3 files with the descriptions set
|
* Given a folder containing 3 files with distinct descriptions set
|
||||||
* When I check if the folder contains children having the description of file2 or file2
|
* When I get the children property values
|
||||||
* Then the answer is positive
|
* Then the answer contains all distinct property values set
|
||||||
*/
|
*/
|
||||||
@org.junit.Test
|
@org.junit.Test
|
||||||
public void testHasChildrenWithPropertyValues_someChildrenWithValues() throws Exception
|
public void testgetChildrenWithPropertyValues_childrenWithValues() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
@@ -112,8 +111,7 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
String propValue1 = "descr1"; // set on file1
|
String propValue1 = "descr1"; // set on file1
|
||||||
String propValue2 = "descr2"; // set on file2
|
String propValue2 = "descr2"; // set on file2
|
||||||
String propValue3 = "descr3"; // set on file3
|
String propValue3 = "descr3"; // set on file3
|
||||||
String propValue4 = "descr4"; // not set on any file
|
Set<String> propertyValues;
|
||||||
Boolean result;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void given() throws Exception
|
public void given() throws Exception
|
||||||
@@ -132,14 +130,72 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
@Override
|
@Override
|
||||||
public void when() throws Exception
|
public void when() throws Exception
|
||||||
{
|
{
|
||||||
List<String> propertyValues = queryDAO.getChildrenPropertyValues(parentFolder, PROP_DESCRIPTION);
|
propertyValues = queryDAO.getChildrenStringPropertyValues(parentFolder, PROP_DESCRIPTION);
|
||||||
result = !Collections.disjoint(Arrays.asList(propValue1, propValue2, propValue4),propertyValues);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void then() throws Exception
|
public void then() throws Exception
|
||||||
{
|
{
|
||||||
assertTrue(result);
|
Set<String> expectedValues = ImmutableSet.of(propValue1,propValue2,propValue3);
|
||||||
|
assertEquals(propertyValues.size(),expectedValues.size());
|
||||||
|
assertTrue(propertyValues.containsAll(expectedValues));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void after() throws Exception
|
||||||
|
{
|
||||||
|
if (parentFolder != null && nodeService.exists(parentFolder))
|
||||||
|
{
|
||||||
|
nodeService.deleteNode(parentFolder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given a folder containing 3 files only some have description set
|
||||||
|
* When I get the children property values
|
||||||
|
* Then the answer contains only the descriptions set
|
||||||
|
*/
|
||||||
|
@org.junit.Test
|
||||||
|
public void testGetChildrenWithPropertyValues_someChildrenWithValues() throws Exception
|
||||||
|
{
|
||||||
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
|
{
|
||||||
|
NodeRef parentFolder;
|
||||||
|
NodeRef file1;
|
||||||
|
NodeRef file2;
|
||||||
|
NodeRef file3;
|
||||||
|
String propValue1 = "descr1"; // set on file1
|
||||||
|
String propValue2 = "descr2"; // set on file2
|
||||||
|
Set<String> propertyValues;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void given() throws Exception
|
||||||
|
{
|
||||||
|
setupCollaborationSiteTestDataImpl();
|
||||||
|
parentFolder = fileFolderService.create(documentLibrary, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
||||||
|
file1 = fileFolderService.create(parentFolder, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
||||||
|
file2 = fileFolderService.create(parentFolder, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
||||||
|
file3 = fileFolderService.create(parentFolder, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
||||||
|
|
||||||
|
nodeService.setProperty(file1, PROP_DESCRIPTION, propValue1);
|
||||||
|
nodeService.setProperty(file2, PROP_DESCRIPTION, propValue2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void when() throws Exception
|
||||||
|
{
|
||||||
|
propertyValues = queryDAO.getChildrenStringPropertyValues(parentFolder, PROP_DESCRIPTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void then() throws Exception
|
||||||
|
{
|
||||||
|
Set<String> expectedValues = ImmutableSet.of(propValue1, propValue2);
|
||||||
|
assertEquals(propertyValues.size(), expectedValues.size());
|
||||||
|
assertTrue(propertyValues.containsAll(expectedValues));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -155,11 +211,11 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a folder containing 3 files with the descriptions unset
|
* Given a folder containing 3 files with the descriptions unset
|
||||||
* When I check if the folder contains children having certain descriptions
|
* When I get the children property values
|
||||||
* Then the answer is negative
|
* Then empty list is returned
|
||||||
*/
|
*/
|
||||||
@org.junit.Test
|
@org.junit.Test
|
||||||
public void testHasChildrenWithPropertyValues_propertyNotSetOnChildren() throws Exception
|
public void testGetChildrenWithPropertyValues_propertyNotSetOnChildren() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
@@ -167,7 +223,7 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
NodeRef file1;
|
NodeRef file1;
|
||||||
NodeRef file2;
|
NodeRef file2;
|
||||||
NodeRef file3;
|
NodeRef file3;
|
||||||
Boolean result;
|
Set<String> propertyValues;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void given() throws Exception
|
public void given() throws Exception
|
||||||
@@ -182,14 +238,14 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
@Override
|
@Override
|
||||||
public void when() throws Exception
|
public void when() throws Exception
|
||||||
{
|
{
|
||||||
List<String> propertyValues = queryDAO.getChildrenPropertyValues(parentFolder, PROP_DESCRIPTION);
|
propertyValues = queryDAO.getChildrenStringPropertyValues(parentFolder, PROP_DESCRIPTION);
|
||||||
result = !Collections.disjoint(Arrays.asList("descr1", "descr2", "descr3"), propertyValues);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void then() throws Exception
|
public void then() throws Exception
|
||||||
{
|
{
|
||||||
assertFalse(result);
|
assertTrue(propertyValues.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -209,13 +265,13 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
* Then the answer is negative
|
* Then the answer is negative
|
||||||
*/
|
*/
|
||||||
@org.junit.Test
|
@org.junit.Test
|
||||||
public void testHasChildrenWithPropertyValues_noChildren() throws Exception
|
public void testGetChildrenWithPropertyValues_noChildren() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
NodeRef folder;
|
NodeRef folder;
|
||||||
String propValue = "descr";
|
String propValue = "descr";
|
||||||
Boolean result;
|
Set<String> propertyValues;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void given() throws Exception
|
public void given() throws Exception
|
||||||
@@ -228,14 +284,13 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
@Override
|
@Override
|
||||||
public void when() throws Exception
|
public void when() throws Exception
|
||||||
{
|
{
|
||||||
List<String> propertyValues = queryDAO.getChildrenPropertyValues(folder, PROP_DESCRIPTION);
|
propertyValues = queryDAO.getChildrenStringPropertyValues(folder, PROP_DESCRIPTION);
|
||||||
result = !Collections.disjoint(Arrays.asList("descr"), propertyValues);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void then() throws Exception
|
public void then() throws Exception
|
||||||
{
|
{
|
||||||
assertFalse(result);
|
assertTrue(propertyValues.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -251,17 +306,17 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a folder with children and an unused property
|
* Given a folder with children and an unused property
|
||||||
* When I check if the folder contains children having the unused property
|
* When I get the property values for the unused property
|
||||||
* Then the answer is negative
|
* Then empty list is returned
|
||||||
*/
|
*/
|
||||||
@org.junit.Test
|
@org.junit.Test
|
||||||
public void testHasChildrenWithPropertyValues_propertyNotUsed() throws Exception
|
public void testGetChildrenWithPropertyValues_propertyNotUsed() throws Exception
|
||||||
{
|
{
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||||
{
|
{
|
||||||
NodeRef parentFolder;
|
NodeRef parentFolder;
|
||||||
QName property;
|
QName property;
|
||||||
Boolean result;
|
Set<String> propertyValues;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void given() throws Exception
|
public void given() throws Exception
|
||||||
@@ -276,14 +331,13 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
@Override
|
@Override
|
||||||
public void when() throws Exception
|
public void when() throws Exception
|
||||||
{
|
{
|
||||||
List<String> propertyValues = queryDAO.getChildrenPropertyValues(folder, property);
|
propertyValues = queryDAO.getChildrenStringPropertyValues(folder, property);
|
||||||
result = !Collections.disjoint(Arrays.asList("descr"), propertyValues);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void then() throws Exception
|
public void then() throws Exception
|
||||||
{
|
{
|
||||||
assertFalse(result);
|
assertTrue(propertyValues.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -297,51 +351,4 @@ public class RecordsManagementQueryDAOImplTest extends BaseRMTestCase implements
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Given any folder and any property
|
|
||||||
* When I pass an empty array to the getChildrenPropertyValues method
|
|
||||||
* Then the answer is negative
|
|
||||||
*/
|
|
||||||
@org.junit.Test
|
|
||||||
public void testHasChildrenWithPropertyValues_emptyArray() throws Exception
|
|
||||||
{
|
|
||||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
|
||||||
{
|
|
||||||
NodeRef parentFolder;
|
|
||||||
NodeRef file1;
|
|
||||||
Boolean result;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void given() throws Exception
|
|
||||||
{
|
|
||||||
setupCollaborationSiteTestDataImpl();
|
|
||||||
parentFolder = fileFolderService.create(documentLibrary, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
|
||||||
file1 = fileFolderService.create(parentFolder, GUID.generate(), ContentModel.TYPE_FOLDER).getNodeRef();
|
|
||||||
|
|
||||||
nodeService.setProperty(file1, PROP_DESCRIPTION, "descr1");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void when() throws Exception
|
|
||||||
{
|
|
||||||
List<String> propertyValues = queryDAO.getChildrenPropertyValues(folder, PROP_DESCRIPTION);
|
|
||||||
result = !Collections.disjoint(new ArrayList(), propertyValues);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void then() throws Exception
|
|
||||||
{
|
|
||||||
assertFalse(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void after() throws Exception
|
|
||||||
{
|
|
||||||
if (folder != null && nodeService.exists(folder))
|
|
||||||
{
|
|
||||||
nodeService.deleteNode(folder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user