mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Improved test for ALF-19153: NodeService.deleteStore does not fire policies
- Check that node policies are called for NodeService.deleteStore git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@52029 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -41,6 +41,8 @@ import org.alfresco.repo.content.MimetypeMap;
|
|||||||
import org.alfresco.repo.dictionary.DictionaryComponent;
|
import org.alfresco.repo.dictionary.DictionaryComponent;
|
||||||
import org.alfresco.repo.dictionary.DictionaryDAO;
|
import org.alfresco.repo.dictionary.DictionaryDAO;
|
||||||
import org.alfresco.repo.dictionary.M2Model;
|
import org.alfresco.repo.dictionary.M2Model;
|
||||||
|
import org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy;
|
||||||
|
import org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy;
|
||||||
import org.alfresco.repo.node.encryption.MetadataEncryptor;
|
import org.alfresco.repo.node.encryption.MetadataEncryptor;
|
||||||
import org.alfresco.repo.node.integrity.IntegrityChecker;
|
import org.alfresco.repo.node.integrity.IntegrityChecker;
|
||||||
import org.alfresco.repo.policy.JavaBehaviour;
|
import org.alfresco.repo.policy.JavaBehaviour;
|
||||||
@@ -481,12 +483,32 @@ public abstract class BaseNodeServiceTest extends BaseSpringTest
|
|||||||
public void testDeleteStore() throws Exception
|
public void testDeleteStore() throws Exception
|
||||||
{
|
{
|
||||||
StoreRef storeRef = createStore();
|
StoreRef storeRef = createStore();
|
||||||
|
NodeRef rootNodeRef = nodeService.getRootNode(storeRef);
|
||||||
|
|
||||||
|
// Add a node into the store and listen for the node's deletion
|
||||||
|
NodeRef nodeRef = nodeService.createNode(rootNodeRef,
|
||||||
|
ASSOC_TYPE_QNAME_TEST_CHILDREN,
|
||||||
|
QName.createQName("pathA"),
|
||||||
|
ContentModel.TYPE_CONTAINER).getChildRef();
|
||||||
|
List<NodeRef> beforeDeleteNodeRefs = new ArrayList<NodeRef>();
|
||||||
|
List<NodeRef> onDeleteNodeRefs = new ArrayList<NodeRef>();
|
||||||
|
BadOnDeleteNodePolicy policy = new BadOnDeleteNodePolicy(nodeService, beforeDeleteNodeRefs, onDeleteNodeRefs);
|
||||||
|
policy.setOnDeleteCreateChild(false);
|
||||||
|
policy.setBeforeDeleteCreateChild(false);
|
||||||
|
policyComponent.bindClassBehaviour(
|
||||||
|
OnDeleteNodePolicy.QNAME,
|
||||||
|
policy,
|
||||||
|
new JavaBehaviour(policy, "onDeleteNode"));
|
||||||
|
policyComponent.bindClassBehaviour(
|
||||||
|
BeforeDeleteNodePolicy.QNAME,
|
||||||
|
policy,
|
||||||
|
new JavaBehaviour(policy, "beforeDeleteNode"));
|
||||||
|
|
||||||
// get all stores
|
// get all stores
|
||||||
List<StoreRef> storeRefs = nodeService.getStores();
|
List<StoreRef> storeRefs = nodeService.getStores();
|
||||||
// check that the store ref is present
|
// check that the store ref is present
|
||||||
assertTrue("New store not present in list of stores", storeRefs.contains(storeRef));
|
assertTrue("New store not present in list of stores", storeRefs.contains(storeRef));
|
||||||
// Get the root node
|
// Get the root node
|
||||||
NodeRef rootNodeRef = nodeService.getRootNode(storeRef);
|
|
||||||
assertTrue("Store should still exist", nodeService.exists(storeRef));
|
assertTrue("Store should still exist", nodeService.exists(storeRef));
|
||||||
assertTrue("Node should still exist", nodeService.exists(rootNodeRef));
|
assertTrue("Node should still exist", nodeService.exists(rootNodeRef));
|
||||||
// Delete it
|
// Delete it
|
||||||
@@ -504,6 +526,12 @@ public abstract class BaseNodeServiceTest extends BaseSpringTest
|
|||||||
// They should not exist as far as external code is concerned
|
// They should not exist as far as external code is concerned
|
||||||
assertFalse("Store should still exist", nodeService.exists(storeRef));
|
assertFalse("Store should still exist", nodeService.exists(storeRef));
|
||||||
assertFalse("Node should still exist", nodeService.exists(rootNodeRef));
|
assertFalse("Node should still exist", nodeService.exists(rootNodeRef));
|
||||||
|
|
||||||
|
// Check that we received callbacks
|
||||||
|
assertEquals("Incorrect number of node beforeDelete notifications", 1, beforeDeleteNodeRefs.size());
|
||||||
|
assertEquals("Incorrect node for beforeDelete callback", nodeRef, beforeDeleteNodeRefs.get(0));
|
||||||
|
assertEquals("Incorrect number of node onDelete notifications", 1, onDeleteNodeRefs.size());
|
||||||
|
assertEquals("Incorrect node for onDelete callback", nodeRef, onDeleteNodeRefs.get(0));
|
||||||
|
|
||||||
// Commit to ensure all is well
|
// Commit to ensure all is well
|
||||||
setComplete();
|
setComplete();
|
||||||
@@ -1088,8 +1116,6 @@ public abstract class BaseNodeServiceTest extends BaseSpringTest
|
|||||||
List<NodeRef> beforeDeleteNodeRefs,
|
List<NodeRef> beforeDeleteNodeRefs,
|
||||||
List<NodeRef> deletedNodeRefs)
|
List<NodeRef> deletedNodeRefs)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
this.nodeService = nodeService;
|
this.nodeService = nodeService;
|
||||||
this.beforeDeleteNodeRefs = beforeDeleteNodeRefs;
|
this.beforeDeleteNodeRefs = beforeDeleteNodeRefs;
|
||||||
this.deletedNodeRefs = deletedNodeRefs;
|
this.deletedNodeRefs = deletedNodeRefs;
|
||||||
@@ -1170,12 +1196,12 @@ public abstract class BaseNodeServiceTest extends BaseSpringTest
|
|||||||
|
|
||||||
// bind to listen to the deletion of a node
|
// bind to listen to the deletion of a node
|
||||||
policyComponent.bindClassBehaviour(
|
policyComponent.bindClassBehaviour(
|
||||||
QName.createQName(NamespaceService.ALFRESCO_URI, "onDeleteNode"),
|
OnDeleteNodePolicy.QNAME,
|
||||||
policy,
|
policy,
|
||||||
new JavaBehaviour(policy, "onDeleteNode"));
|
new JavaBehaviour(policy, "onDeleteNode"));
|
||||||
|
|
||||||
policyComponent.bindClassBehaviour(
|
policyComponent.bindClassBehaviour(
|
||||||
QName.createQName(NamespaceService.ALFRESCO_URI, "beforeDeleteNode"),
|
BeforeDeleteNodePolicy.QNAME,
|
||||||
policy,
|
policy,
|
||||||
new JavaBehaviour(policy, "beforeDeleteNode"));
|
new JavaBehaviour(policy, "beforeDeleteNode"));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user