Finished reference set tests

This commit is contained in:
Ann Priestman 2018-01-31 08:48:04 -05:00
parent e502fedd9b
commit 23c5e5be62
2 changed files with 284 additions and 208 deletions

View File

@ -1541,6 +1541,9 @@ public abstract class AbstractSqlEamDb implements EamDb {
public EamOrganization getReferenceSetOrganization(int referenceSetID) throws EamDbException {
EamGlobalSet globalSet = getReferenceSetByID(referenceSetID);
if(globalSet == null) {
throw new EamDbException("Reference set with ID " + referenceSetID + " not found");
}
return (getOrganizationByID(globalSet.getOrgID()));
}

View File

@ -73,15 +73,6 @@ public class CentralRepoDatamodelTest extends TestCase {
// Save the current central repo settings
propertiesMap = ModuleSettings.getConfigSettings(PROPERTIES_FILE);
// Set up an Autopsy case for testing
try {
Case.createAsCurrentCase(Case.CaseType.SINGLE_USER_CASE, testDirectory.toString(), new CaseDetails("CentralRepoDatamodelTestCase"));
} catch (CaseActionException ex) {
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
assertTrue("Failed to create test case", testDirectory.toFile().exists());
try {
dbSettingsSqlite.setDbName(CR_DB_NAME);
dbSettingsSqlite.setDbDirectory(testDirectory.toString());
@ -150,14 +141,8 @@ public class CentralRepoDatamodelTest extends TestCase {
// Close and delete the test case and central repo db
try {
EamDb.getInstance().shutdownConnections();
Case.closeCurrentCase();
Case.closeCurrentCase(); // There shouldn't be a case open, but it's fine to call this anyway
// This seems to help in allowing the Autopsy case to be deleted
try{
Thread.sleep(2000);
} catch (Exception ex){
}
FileUtils.deleteDirectory(testDirectory.toFile());
} catch (EamDbException | CaseActionException | IOException ex) {
@ -169,7 +154,40 @@ public class CentralRepoDatamodelTest extends TestCase {
}
/**
* Test method for the methods related to reference sets
* Test method for the methods related to reference sets (does not include instance testing)
* newReferenceSet(EamGlobalSet eamGlobalSet) tests:
* - Test creating notable reference set
* - Test creating known reference set
* - Test creating duplicate reference set
* - Test creating almost duplicate reference set
* - Test with invalid org ID
* - Test with null name
* - Test with null version
* - Test with null known status
* - Test with null file type
* referenceSetIsValid(int referenceSetID, String referenceSetName, String version) tests:
* - Test on existing reference set
* - Test on invalid reference set
* - Test with null name
* - Test with null version
* referenceSetExists(String referenceSetName, String version) tests:
* - Test on existing reference set
* - Test on invalid reference set
* - Test with null name
* - Test with null version
* getReferenceSetByID(int globalSetID) tests:
* - Test with valid ID
* - Test with invalid ID
* getAllReferenceSets(CorrelationAttribute.Type correlationType) tests:
* - Test getting all file sets
* - Test getting all email sets
* - Test with null type parameter
* deleteReferenceSet(int referenceSetID) tests:
* - Test on valid reference set ID
* - Test on invalid reference set ID
* getReferenceSetOrganization(int referenceSetID) tests:
* - Test on valid reference set ID
* - Test on invalid reference set ID
*/
public void testReferenceSets() {
String set1name = "referenceSet1";
@ -396,13 +414,44 @@ public class CentralRepoDatamodelTest extends TestCase {
assertTrue("setToDelete wasn't found in database", EamDb.getInstance().referenceSetIsValid(setToDeleteID, setToDelete.getSetName(), setToDelete.getVersion()));
int currentCount = EamDb.getInstance().getAllReferenceSets(fileType).size();
EamDb.getInstance().deleteReferenceSet(setToDeleteID);
assertFalse("Deleted reference set was found in database", EamDb.getInstance().referenceSetIsValid(setToDeleteID, setToDelete.getSetName(), setToDelete.getVersion()));
assertTrue("Unexpected number of reference sets in database after deletion", currentCount - 1 == EamDb.getInstance().getAllReferenceSets(fileType).size());
} catch (EamDbException ex){
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
// Test deleting a non-existent reference set
// The expectation is that nothing will happen
try {
int currentCount = EamDb.getInstance().getAllReferenceSets(fileType).size();
EamDb.getInstance().deleteReferenceSet(1234);
assertTrue("Number of reference sets changed after deleting non-existent set", currentCount == EamDb.getInstance().getAllReferenceSets(fileType).size());
} catch (EamDbException ex){
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
// Test getting reference set organization for valid ID with org set
try {
EamOrganization org = EamDb.getInstance().getReferenceSetOrganization(set1id);
assertTrue("getReferenceSetOrganization returned null for valid set", org != null);
assertTrue("getReferenceSetOrganization returned the incorrect organization", org.getOrgID() == org1.getOrgID());
} catch (EamDbException ex){
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
// Test getting reference set organization for non-existent reference set
try {
EamOrganization org = EamDb.getInstance().getReferenceSetOrganization(4567);
Assert.fail("getReferenceSetOrganization failed to throw exception for invalid reference set ID");
} catch (EamDbException ex){
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
}
/**
@ -566,6 +615,16 @@ public class CentralRepoDatamodelTest extends TestCase {
CorrelationCase caseA;
CorrelationCase caseB;
try {
// Set up an Autopsy case for testing
try {
Case.createAsCurrentCase(Case.CaseType.SINGLE_USER_CASE, testDirectory.toString(), new CaseDetails("CentralRepoDatamodelTestCase"));
} catch (CaseActionException ex) {
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
assertTrue("Failed to create test case", testDirectory.toFile().exists());
// Test creating a case with valid name and uuid
try {
caseA = new CorrelationCase(caseAuuid, caseAname);
@ -761,6 +820,20 @@ public class CentralRepoDatamodelTest extends TestCase {
} catch (EamDbException ex) {
// This is the expected behavior
}
} finally {
try {
Case.closeCurrentCase();
// This seems to help in allowing the Autopsy case to be deleted
try{
Thread.sleep(2000);
} catch (Exception ex){
}
} catch (CaseActionException ex){
Exceptions.printStackTrace(ex);
Assert.fail(ex);
}
}
}
/**