/*
* Copyright (c) 2012 Chris Ellison, Mike Deats, Liron Yahdav, Ryan Neal,
* Brandon Sutherlin, Scott Griffin
*
* This software is released under the MIT license
* (http://www.opensource.org/licenses/mit-license.php)
*
* Created on Feb 7, 2012
*/
package edu.cmu.sv.arinc838.builder;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotEquals;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.arinc.arinc838.FileDefinition;
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.util.Converter;
public class FileDefinitionBuilderTest {
FileDefinition xmlFileDef;
// Our builder
private FileDefinitionDao fileBuilder;
@BeforeMethod
public void setUp() {
IntegrityDefinitionDao integDao = new IntegrityDefinitionDao();
integDao.setIntegrityType(IntegrityType.CRC16.getType());
integDao.setIntegrityValue(Converter.hexToBytes("0000000A"));
xmlFileDef = new FileDefinition();
xmlFileDef.setFileLoadable(false);
xmlFileDef.setFileName("testFile");
xmlFileDef.setFileSize(1234);
xmlFileDef.setFileIntegrityDefinition( new IntegrityDefinitionBuilder ().buildXml(integDao));
fileBuilder = new FileDefinitionDao();
fileBuilder.setFileLoadable(xmlFileDef.isFileLoadable());
fileBuilder.setFileName(xmlFileDef.getFileName());
fileBuilder.setFileSize(xmlFileDef.getFileSize());
fileBuilder.setFileIntegrityDefinition(integDao);
}
@Test
public void testBuilder() {
FileDefinitionDao fdDao = new FileDefinitionDao(xmlFileDef);
FileDefinition built = new FileDefinitionBuilder(new BuilderFactory()).buildXml(fdDao);
assertNotEquals(null, built);
assertNotEquals(built, xmlFileDef,
"Should be different, a NEW instance should be built");
assertNotEquals(null, built.getFileIntegrityDefinition());
assertNotEquals(built.getFileIntegrityDefinition(),
xmlFileDef.getFileIntegrityDefinition(),
"Should have built a new integrity definition");
assertEquals(built.getFileName(), xmlFileDef.getFileName());
assertEquals(built.getFileSize(), xmlFileDef.getFileSize());
assertEquals(built.isFileLoadable(), xmlFileDef.isFileLoadable());
}
}