mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Audit validation using XSD and related tests
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15875 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -24,11 +24,20 @@
|
||||
*/
|
||||
package org.alfresco.repo.audit;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Map;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.alfresco.repo.audit.extractor.DataExtractor;
|
||||
import org.alfresco.repo.audit.generator.DataGenerator;
|
||||
import org.alfresco.repo.audit.generator.DataGenerator.DataGeneratorScope;
|
||||
import org.alfresco.repo.audit.model.AuditApplication;
|
||||
import org.alfresco.repo.audit.model.AuditModelException;
|
||||
import org.alfresco.repo.audit.model.AuditModelRegistry;
|
||||
import org.alfresco.util.ApplicationContextHelper;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
|
||||
/**
|
||||
* Tests that auditing is loaded properly on repository startup.
|
||||
@@ -40,7 +49,7 @@ import org.springframework.context.ApplicationContext;
|
||||
*/
|
||||
public class AuditBootstrapTest extends TestCase
|
||||
{
|
||||
private static final String APPLICATION_REPOSITORY = "Alfresco Repository";
|
||||
private static final String APPLICATION_TEST = "Alfresco Test";
|
||||
|
||||
private static ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
|
||||
|
||||
@@ -50,6 +59,11 @@ public class AuditBootstrapTest extends TestCase
|
||||
public void setUp() throws Exception
|
||||
{
|
||||
auditModelRegistry = (AuditModelRegistry) ctx.getBean("auditModel.registry");
|
||||
|
||||
// Register a new model
|
||||
URL testModelUrl = ResourceUtils.getURL("classpath:alfresco/audit/alfresco-audit-test.xml");
|
||||
auditModelRegistry.registerModel(testModelUrl);
|
||||
auditModelRegistry.loadAuditModels();
|
||||
}
|
||||
|
||||
public void testSetUp()
|
||||
@@ -57,9 +71,116 @@ public class AuditBootstrapTest extends TestCase
|
||||
// Just here to fail if the basic startup fails
|
||||
}
|
||||
|
||||
private void loadBadModel(String url) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
URL testModelUrl = ResourceUtils.getURL(url);
|
||||
auditModelRegistry.registerModel(testModelUrl);
|
||||
auditModelRegistry.loadAuditModels();
|
||||
fail("Expected model loading to fail.");
|
||||
}
|
||||
catch (AuditModelException e)
|
||||
{
|
||||
// Expected
|
||||
}
|
||||
}
|
||||
|
||||
public void testModelLoading_NoDataExtractor() throws Exception
|
||||
{
|
||||
loadBadModel("classpath:alfresco/audit/alfresco-audit-test-bad-01.xml");
|
||||
}
|
||||
|
||||
public void testModelLoading_NoDataGenerator() throws Exception
|
||||
{
|
||||
loadBadModel("classpath:alfresco/audit/alfresco-audit-test-bad-02.xml");
|
||||
}
|
||||
|
||||
public void testModelLoading_DuplicatePath() throws Exception
|
||||
{
|
||||
loadBadModel("classpath:alfresco/audit/alfresco-audit-test-bad-03.xml");
|
||||
}
|
||||
|
||||
public void testModelLoading_UppercasePath() throws Exception
|
||||
{
|
||||
loadBadModel("classpath:alfresco/audit/alfresco-audit-test-bad-04.xml");
|
||||
}
|
||||
|
||||
public void testModelLoading_InvalidScope() throws Exception
|
||||
{
|
||||
loadBadModel("classpath:alfresco/audit/alfresco-audit-test-bad-05.xml");
|
||||
}
|
||||
|
||||
public void testGetModelId()
|
||||
{
|
||||
Long repoId = auditModelRegistry.getAuditModelId(APPLICATION_REPOSITORY);
|
||||
assertNotNull("No audit model ID for " + APPLICATION_REPOSITORY, repoId);
|
||||
Long repoId = auditModelRegistry.getAuditModelId(APPLICATION_TEST);
|
||||
assertNotNull("No audit model ID for " + APPLICATION_TEST, repoId);
|
||||
}
|
||||
|
||||
private void testBadPath(AuditApplication app, String path)
|
||||
{
|
||||
try
|
||||
{
|
||||
app.checkPath(path);
|
||||
fail("Expected path check to fail.");
|
||||
}
|
||||
catch (AuditModelException e)
|
||||
{
|
||||
// Expected
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuditApplication_Path()
|
||||
{
|
||||
AuditApplication app = auditModelRegistry.getAuditApplication(APPLICATION_TEST);
|
||||
assertNotNull(app);
|
||||
|
||||
// Check that path checks are working
|
||||
testBadPath(app, null);
|
||||
testBadPath(app, "");
|
||||
testBadPath(app, "test");
|
||||
testBadPath(app, "/Test");
|
||||
testBadPath(app, "/test/");
|
||||
}
|
||||
|
||||
public void testAuditApplication_GetDataExtractors()
|
||||
{
|
||||
AuditApplication app = auditModelRegistry.getAuditApplication(APPLICATION_TEST);
|
||||
assertNotNull(app);
|
||||
|
||||
Map<String, DataExtractor> extractors = app.getDataExtractors("/blah");
|
||||
assertNotNull("Should never get a null map", extractors);
|
||||
assertTrue("Expected no extractors", extractors.isEmpty());
|
||||
|
||||
extractors = app.getDataExtractors("/test/1.1/2.1/3.1/4.1");
|
||||
assertEquals(2, extractors.size());
|
||||
assertTrue(extractors.containsKey("/test/1.1/2.1/3.1/value.1"));
|
||||
assertTrue(extractors.containsKey("/test/1.1/2.1/3.1/4.1/value.1"));
|
||||
}
|
||||
|
||||
public void testAuditApplication_GetDataGenerators_AnyScope()
|
||||
{
|
||||
AuditApplication app = auditModelRegistry.getAuditApplication(APPLICATION_TEST);
|
||||
assertNotNull(app);
|
||||
|
||||
Map<String, DataGenerator> generators = app.getDataGenerators("/blah", DataGeneratorScope.ALL);
|
||||
assertNotNull("Should never get a null map", generators);
|
||||
assertTrue("Expected no generators", generators.isEmpty());
|
||||
|
||||
generators = app.getDataGenerators("/test/1.1/2.1/3.1/4.1", DataGeneratorScope.ALL);
|
||||
assertEquals(1, generators.size());
|
||||
assertTrue(generators.containsKey("/test/time"));
|
||||
|
||||
generators = app.getDataGenerators("/test/1.1/2.1/3.1/4.1", DataGeneratorScope.SESSION);
|
||||
assertEquals(1, generators.size());
|
||||
assertTrue(generators.containsKey("/test/time"));
|
||||
|
||||
generators = app.getDataGenerators("/test/1.1/2.1/3.1/4.1", DataGeneratorScope.AUDIT);
|
||||
assertEquals(0, generators.size());
|
||||
|
||||
generators = app.getDataGenerators("/test/1.1/2.2/3.2/4.1", DataGeneratorScope.ALL);
|
||||
assertEquals(2, generators.size());
|
||||
assertTrue(generators.containsKey("/test/time"));
|
||||
assertTrue(generators.containsKey("/test/1.1/2.2/3.2/4.1/time"));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user