Skip to content

Commit

Permalink
Finished basic validation logic [23650083]
Browse files Browse the repository at this point in the history
  • Loading branch information
SQUIDwarrior committed Mar 29, 2012
1 parent 4b0b699 commit 17e436a
Show file tree
Hide file tree
Showing 7 changed files with 159 additions and 265 deletions.
6 changes: 3 additions & 3 deletions src/main/java/edu/cmu/sv/arinc838/dao/FileDefinitionDao.java
Expand Up @@ -49,7 +49,7 @@
*
*/
public class FileDefinitionDao {
private IntegrityDefinitionDao integDefBuilder;
private IntegrityDefinitionDao integDef;
private boolean loadable;
private String fileName;
private long fileSize;
Expand All @@ -75,11 +75,11 @@ public FileDefinitionDao(BdfFile bdfFile) throws IOException {
}

public IntegrityDefinitionDao getFileIntegrityDefinition() {
return integDefBuilder;
return integDef;
}

public void setFileIntegrityDefinition(IntegrityDefinitionDao value) {
this.integDefBuilder = value;
this.integDef = value;
}

public boolean isFileLoadable() {
Expand Down
Expand Up @@ -111,14 +111,12 @@ public List<Exception> validateFileDefinitions(

public List<Exception> validateSdfIntegrityDefinition(
IntegrityDefinitionDao sdfInteg) {
// TODO Auto-generated method stub
return null;
return validateIntegrityDefinition(sdfInteg);
}

public List<Exception> validateLspIntegrityDefinition(
IntegrityDefinitionDao lspInteg) {
// TODO Auto-generated method stub
return null;
return validateIntegrityDefinition(lspInteg);
}

public List<Exception> validateFileDefinition(FileDefinitionDao fileDef) {
Expand All @@ -129,6 +127,34 @@ public List<Exception> validateFileDefinition(FileDefinitionDao fileDef) {
} catch (IllegalArgumentException e) {
errors.add(e);
}

try {
dataVal.validateUint32(fileDef.getFileSize());
} catch (IllegalArgumentException e) {
errors.add(e);
}

errors.addAll(validateIntegrityDefinition(fileDef.getFileIntegrityDefinition()));

return errors;
}

public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
List<Exception> errors = new ArrayList<Exception>();

try {
dataVal.validateIntegrityType(integDef.getIntegrityType());
} catch (IllegalArgumentException e) {
errors.add(e);
}

try {
dataVal.validateIntegrityValue(integDef.getIntegrityValue());
} catch (IllegalArgumentException e) {
errors.add(e);
}

return errors;
}

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Expand Up @@ -3,7 +3,7 @@
* Brandon Sutherlin, Scott Griffin
*
* This software is released under the MIT license
* (http://www.opensource.org/licenses/mit-license.php)
* (http://www.opensource.org/licenses/mit-license.php)
*
* Created on Mar 26, 2012
*/
Expand All @@ -22,8 +22,11 @@
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import com.arinc.arinc838.IntegrityDefinition;

import edu.cmu.sv.arinc838.dao.FileDefinitionDao;
import edu.cmu.sv.arinc838.dao.IntegrityDefinitionDao;
import edu.cmu.sv.arinc838.dao.IntegrityDefinitionDao.IntegrityType;
import edu.cmu.sv.arinc838.dao.SoftwareDefinitionFileDao;
import edu.cmu.sv.arinc838.dao.SoftwareDescriptionDao;
import edu.cmu.sv.arinc838.dao.TargetHardwareDefinitionDao;
Expand Down Expand Up @@ -231,19 +234,137 @@ public List<Exception> validateFileDefinition(
assertEquals(errors.get(1).getMessage(), fileDef1.getFileName());
assertEquals(errors.get(2).getMessage(), fileDef2.getFileName());
}

@Test
public void testValidateFileDefinitionFileName() {
FileDefinitionDao fileDef = mock(FileDefinitionDao.class);
when(fileDef.getFileName()).thenReturn("123");
when(dataVal.validateStr64kXml(fileDef.getFileName()))
.thenThrow(new IllegalArgumentException("0"));
when(dataVal.validateStr64kXml(fileDef.getFileName())).thenThrow(
new IllegalArgumentException("0"));

SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal);
dataVal) {
@Override
public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
return new ArrayList<Exception>();
}
};

List<Exception> errors = sdfVal.validateFileDefinition(fileDef);
assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateFileDefinitionFileSize() {
FileDefinitionDao fileDef = mock(FileDefinitionDao.class);
when(fileDef.getFileSize()).thenReturn(1234L);
when(dataVal.validateUint32(fileDef.getFileSize())).thenThrow(
new IllegalArgumentException("0"));

SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal) {
@Override
public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
return new ArrayList<Exception>();
}
};

List<Exception> errors = sdfVal.validateFileDefinition(fileDef);
assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateFileDefinitionIntegrityDefinition() {
SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal) {

@Override
public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
return errorList("0");
}
};

FileDefinitionDao fileDef = mock(FileDefinitionDao.class);
when(fileDef.getFileIntegrityDefinition()).thenReturn(
new IntegrityDefinitionDao());

List<Exception> errors = sdfVal.validateFileDefinition(fileDef);

assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateIntegrityDefinitionIntegrityType() {
IntegrityDefinitionDao integDef = mock(IntegrityDefinitionDao.class);
when(integDef.getIntegrityType()).thenReturn(IntegrityType.CRC16.getType());
when(dataVal.validateIntegrityType(integDef.getIntegrityType())).thenThrow(
new IllegalArgumentException("0"));

SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal);

List<Exception> errors = sdfVal.validateIntegrityDefinition(integDef);
assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateIntegrityDefinitionIntegrityValue() {
IntegrityDefinitionDao integDef = mock(IntegrityDefinitionDao.class);
when(integDef.getIntegrityValue()).thenReturn(new byte[]{1,2,3,4});
when(dataVal.validateIntegrityValue(integDef.getIntegrityValue())).thenThrow(
new IllegalArgumentException("0"));

SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal);

List<Exception> errors = sdfVal.validateIntegrityDefinition(integDef);
assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateSdfIntegrityDefinition() {
SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal) {

@Override
public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
return errorList("0");
}

};

List<Exception> errors = sdfVal.validateSdfIntegrityDefinition(new IntegrityDefinitionDao());

assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

@Test
public void testValidateLspIntegrityDefinition() {
SoftwareDefinitionFileValidator sdfVal = new SoftwareDefinitionFileValidator(
dataVal) {

@Override
public List<Exception> validateIntegrityDefinition(
IntegrityDefinitionDao integDef) {
return errorList("0");
}

};

List<Exception> errors = sdfVal.validateLspIntegrityDefinition(new IntegrityDefinitionDao());

assertEquals(errors.size(), 1);
assertEquals(errors.get(0).getMessage(), "0");
}

}

0 comments on commit 17e436a

Please sign in to comment.