/* * 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.dao; 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.builder.IntegrityDefinitionBuilder; 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 FileDefinitionDaoTest { 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); } /** * Check that the file definition builder can be built from the XML (read: * JAXB) and that all the fields are properly set */ @Test public void testXmlConstructor() { FileDefinitionDao tmpBuilder = new FileDefinitionDao(xmlFileDef); // check that the fields stuck assertEquals(xmlFileDef.getFileName(), tmpBuilder.getFileName()); assertEquals(xmlFileDef.getFileSize(), tmpBuilder.getFileSize()); assertEquals(xmlFileDef.isFileLoadable(), tmpBuilder.isFileLoadable()); assertEquals(xmlFileDef.getFileIntegrityDefinition().getIntegrityType(), tmpBuilder.getFileIntegrityDefinition().getIntegrityType()); assertEquals(xmlFileDef.getFileIntegrityDefinition().getIntegrityValue(), tmpBuilder.getFileIntegrityDefinition().getIntegrityValue()); } @Test public void testFileIntegrityDefinitionAccessors() { IntegrityDefinitionDao integDef = new IntegrityDefinitionDao(); assertNotEquals(integDef, fileBuilder.getFileIntegrityDefinition()); fileBuilder.setFileIntegrityDefinition(integDef); assertEquals(integDef, fileBuilder.getFileIntegrityDefinition(), "Should be the same, the set keeps a reference"); } @Test public void testFileNameAccessors() { String fileName = "TEST"; fileBuilder.setFileName(fileName); assertEquals(fileName, fileBuilder.getFileName()); fileName += "JUNK"; assertNotEquals(fileName, fileBuilder.getFileName()); } @Test public void testFileSizeAccessors() { int fSize = 234; fileBuilder.setFileSize(fSize); assertEquals(fSize, fileBuilder.getFileSize()); fSize += 234; assertNotEquals(fSize, fileBuilder); } @Test public void testLoadableAccessors() { boolean loadable = false; fileBuilder.setFileLoadable(loadable); assertEquals(loadable, fileBuilder.isFileLoadable()); loadable = !loadable; assertNotEquals(loadable, fileBuilder.isFileLoadable()); } @Test public void testHashCode(){ assertEquals(fileBuilder.hashCode(), fileBuilder.getFileIntegrityDefinition().hashCode()); } @Test public void testHashCodeWithNoIntegrity(){ assertEquals(new FileDefinitionDao().hashCode(), 0); } @Test public void testEquals(){ FileDefinitionDao second = new FileDefinitionDao(xmlFileDef); assertEquals(fileBuilder, second); } }