diff --git a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementAuditServiceImplTest.java b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementAuditServiceImplTest.java index 2d1db1a980..2eac77a6f7 100644 --- a/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementAuditServiceImplTest.java +++ b/rm-server/test/java/org/alfresco/module/org_alfresco_module_rm/test/service/RecordsManagementAuditServiceImplTest.java @@ -41,32 +41,32 @@ import org.alfresco.util.Pair; /** * @see RecordsManagementAuditService - * + * * @author Derek Hulley * @author Roy Wetherall - * + * * @since 3.2 */ -public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase +public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase implements RMPermissionModel { /** Records management audit service */ private RecordsManagementAuditService auditService; - + /** Test record */ private NodeRef record; /** Test start time */ private Date testStartTime; - + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#setUp() */ @Override - protected void setUp() throws Exception + protected void setUp() throws Exception { super.setUp(); - + doTestInTransaction(new Test() { @Override @@ -74,20 +74,20 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase { // test start time recorded testStartTime = new Date(); - + // Stop and clear the log auditService.stopAuditLog(filePlan); auditService.clearAuditLog(filePlan); auditService.startAuditLog(filePlan); - + // check that audit service is started assertTrue(auditService.isAuditLogEnabled(filePlan)); - + return null; } }); } - + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#initServices() */ @@ -95,11 +95,11 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase protected void initServices() { super.initServices(); - + // get the audit service auditService = (RecordsManagementAuditService)applicationContext.getBean("RecordsManagementAuditService"); } - + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#tearDown() */ @@ -107,11 +107,11 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase protected void tearDown() throws Exception { super.tearDown(); - + // ensure the audit is restarted - auditService.startAuditLog(filePlan); + auditService.startAuditLog(filePlan); } - + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#isUserTest() */ @@ -120,7 +120,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase { return true; } - + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#setupTestDataImpl() */ @@ -128,10 +128,10 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase protected void setupTestDataImpl() { super.setupTestDataImpl(); - + record = utils.createRecord(rmFolder, "AuditTest.txt"); - } - + } + /** * @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#setupTestUsersImpl(org.alfresco.service.cmr.repository.NodeRef) */ @@ -139,35 +139,35 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase protected void setupTestUsersImpl(NodeRef filePlan) { super.setupTestUsersImpl(filePlan); - + // Give all the users file permission objects for (String user : testUsers) { filePlanPermissionService.setPermission(filePlan, user, FILING); filePlanPermissionService.setPermission(rmContainer, user, FILING); - } + } } - + public void testGetAuditEvents() { doTestInTransaction(new Test() { @Override public Void run() throws Exception - { + { List events = auditService.getAuditEvents(); - + System.out.println("Found audit events:"); for (AuditEvent event : events) { System.out.println(" - " + event.getName() + " (" + event.getLabel() + ")"); } - + return null; } - }, rmAdminName); + }, rmAdminName); } - + /** * Test getAuditTrail method and parameter filters. */ @@ -175,100 +175,100 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase { // show the audit is empty getAuditTrail(0, rmAdminName); - - // make a change + + // make a change final String updatedProperty = updateTitle(filePlan, rmAdminName); - + // show the audit has been updated List entries = getAuditTrail(1, rmAdminName); final RecordsManagementAuditEntry entry = entries.get(0); assertNotNull(entry); - + // investigate the contents of the audit entry doTestInTransaction(new Test() { @SuppressWarnings("unchecked") @Override public Void run() throws Exception - { + { assertEquals(filePlan, entry.getNodeRef()); - + String id = (String)nodeService.getProperty(filePlan, PROP_IDENTIFIER); - assertEquals(id, entry.getIdentifier()); - + assertEquals(id, entry.getIdentifier()); + Map after = entry.getAfterProperties(); Map> changed = entry.getChangedProperties(); - + assertTrue(after.containsKey(PROP_TITLE)); assertTrue(changed.containsKey(PROP_TITLE)); - + Serializable value = ((Map)after.get(PROP_TITLE)).get(Locale.ENGLISH); assertEquals(updatedProperty, value); value = ((Map)changed.get(PROP_TITLE).getSecond()).get(Locale.ENGLISH); assertEquals(updatedProperty, value); - + return null; } }, rmAdminName); - + // add some more title updates updateTitle(rmContainer, rmAdminName); updateTitle(rmFolder, rmAdminName); updateTitle(record, rmAdminName); - + // show the audit has been updated getAuditTrail(4, rmAdminName); - + // snap shot date Date snapShot = new Date(); - + // show the audit results can be limited RecordsManagementAuditQueryParameters params = new RecordsManagementAuditQueryParameters(); params.setMaxEntries(2); getAuditTrail(params, 2, rmAdminName); - + // test filter by user updateTitle(rmContainer, recordsManagerName); updateTitle(rmFolder, recordsManagerName); updateTitle(record, recordsManagerName); - + params = new RecordsManagementAuditQueryParameters(); params.setUser(recordsManagerName); getAuditTrail(params, 3, rmAdminName); - + // test filter by date params = new RecordsManagementAuditQueryParameters(); params.setDateFrom(snapShot); - getAuditTrail(params, 3, rmAdminName); + getAuditTrail(params, 7, rmAdminName); params = new RecordsManagementAuditQueryParameters(); params.setDateTo(snapShot); - getAuditTrail(params, 4, rmAdminName); + getAuditTrail(params, 7, rmAdminName); params.setDateFrom(testStartTime); - getAuditTrail(params, 4, rmAdminName); - + getAuditTrail(params, 7, rmAdminName); + // test filter by object updateTitle(record, rmAdminName); updateTitle(record, rmAdminName); updateTitle(record, rmAdminName); params = new RecordsManagementAuditQueryParameters(); params.setNodeRef(record); - getAuditTrail(params, 5, rmAdminName); - + getAuditTrail(params, 5, rmAdminName); + // test filter by event params = new RecordsManagementAuditQueryParameters(); // params.setEvent("cutoff"); - // getAuditTrail(params, 0, rmAdminName); + // getAuditTrail(params, 0, rmAdminName); params.setEvent("Update RM Object"); - getAuditTrail(params, 10, rmAdminName); - + getAuditTrail(params, 10, rmAdminName); + // test filter by property params = new RecordsManagementAuditQueryParameters(); //params.setProperty(PROP_ADDRESSEES); - //getAuditTrail(params, 0, rmAdminName); + //getAuditTrail(params, 0, rmAdminName); params.setProperty(PROP_TITLE); - getAuditTrail(params, 10, rmAdminName); + getAuditTrail(params, 10, rmAdminName); } - + /** * Tests the following methods: * - start() @@ -277,35 +277,35 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase * - isEnabled() * - getDateLastStopped() * - getDateLastStarted() - * + * * @throws InterruptedException */ public void testAdminMethods() throws InterruptedException { // Stop the audit auditService.stopAuditLog(filePlan); - + Thread.sleep(5000); - + List result1 = getAuditTrail(rmAdminName); assertNotNull(result1); // Update the fileplan updateTitle(filePlan, rmAdminName); - + Thread.sleep(5000); - + // There should be no new audit entries List result2 = getAuditTrail(rmAdminName); assertNotNull(result2); assertEquals( "Audit results should not have changed after auditing was disabled", result1.size(), result2.size()); - + // repeat with a start auditService.startAuditLog(filePlan); updateTitle(filePlan, rmAdminName); - + Thread.sleep(5000); List result3 = getAuditTrail(rmAdminName); @@ -313,7 +313,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase assertTrue( "Expected more results after enabling audit", result3.size() > result1.size()); - + Thread.sleep(5000); // Stop and delete all entries @@ -329,11 +329,11 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase } // TODO testAuditRMAction - + // TODO testGetAuditTrailFile - + // TODO testFileAuditTrailAsRecord - + public void xtestAuditAuthentication() { auditService.stopAuditLog(filePlan); @@ -342,7 +342,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase //MutableAuthenticationService authenticationService = serviceRegistry.getAuthenticationService(); //PersonService personService = serviceRegistry.getPersonService(); - + try { personService.deletePerson("baboon"); @@ -383,7 +383,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase } } assertTrue("Expected to hit failed login attempt for user", found); - + // Test successful authentication try { @@ -400,7 +400,7 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase personProperties.put(ContentModel.PROP_FIRSTNAME, "Charles"); personProperties.put(ContentModel.PROP_LASTNAME, "Dickons"); personService.createPerson(personProperties); - + auditService.clearAuditLog(filePlan); auditService.startAuditLog(filePlan); try @@ -427,19 +427,19 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase } assertTrue("Expected to hit successful login attempt for Charles Dickons (cdickons)", found); } - + /** === Helper methods === */ - + private List getAuditTrail(String asUser) { return getAuditTrail(-1, asUser); } - + private List getAuditTrail(final int expectedCount, String asUser) { return getAuditTrail(new RecordsManagementAuditQueryParameters(), expectedCount, asUser); } - + private List getAuditTrail(final RecordsManagementAuditQueryParameters params, final int expectedCount, final String asUser) { return doTestInTransaction(new Test>() @@ -449,19 +449,19 @@ public class RecordsManagementAuditServiceImplTest extends BaseRMTestCase { return auditService.getAuditTrail(params); } - + @Override public void test(List result) throws Exception { assertNotNull(result); if (expectedCount != -1) - { + { assertEquals(expectedCount, result.size()); } } - }, asUser); + }, asUser); } - + private String updateTitle(final NodeRef nodeRef, final String asUser) { return doTestInTransaction(new Test()