Fixed failing unit test

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@53956 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2013-08-12 17:42:07 +00:00
parent 3826e40a92
commit 4d256c1f36

View File

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