package dk.kb.yggdrasil.bitmag; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.File; import org.bitrepository.bitrepositoryelements.ChecksumDataForFileTYPE; import org.bitrepository.bitrepositoryelements.ChecksumSpecTYPE; import org.bitrepository.bitrepositoryelements.ChecksumType; import org.bitrepository.common.utils.Base16Utils; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link dk.kb.yggdrasil.bitmag.Bitrepository } * Named BitrepositoryTester and not BitrepositoryTest to avoid inclusion in * the set of unittests run by Maven. */ @RunWith(JUnit4.class) public class BitrepositoryUtilsTest { @Test public void testInstantiation() { assertNotNull(new BitrepositoryUtils()); } @Test public void testGetRequestChecksumSpecWithoutSalt() { ChecksumSpecTYPE cst = BitrepositoryUtils.getRequestChecksumSpec(ChecksumType.HMAC_MD5, null); assertNotNull(cst); assertFalse(cst.isSetChecksumSalt()); assertTrue(cst.isSetChecksumType()); assertFalse(cst.isSetOtherChecksumType()); assertEquals(cst.getChecksumType(), ChecksumType.HMAC_MD5); } @Test public void testGetRequestChecksumSpecWithSalt() { ChecksumSpecTYPE cst = BitrepositoryUtils.getRequestChecksumSpec(ChecksumType.HMAC_MD5, "salt"); assertNotNull(cst); assertTrue(cst.isSetChecksumSalt()); assertTrue(cst.isSetChecksumType()); assertFalse(cst.isSetOtherChecksumType()); assertEquals(cst.getChecksumType(), ChecksumType.HMAC_MD5); assertEquals(cst.getChecksumSalt().length, Base16Utils.encodeBase16("salt").length); } @Test public void testComponentId() { String componentId = BitrepositoryUtils.generateComponentID(); assertNotNull(componentId); assertFalse(componentId.isEmpty()); } @Test public void testGetValidationChecksum() throws Exception { ChecksumSpecTYPE cst = BitrepositoryUtils.getRequestChecksumSpec(ChecksumType.MD5, null); File file = File.createTempFile(this.getClass().getName(), null); ChecksumDataForFileTYPE cdfft = BitrepositoryUtils.getValidationChecksum(file, cst); assertNotNull(cdfft); assertTrue(cdfft.isSetCalculationTimestamp()); assertTrue(cdfft.isSetChecksumSpec()); assertTrue(cdfft.isSetChecksumValue()); assertEquals(cdfft.getChecksumSpec(), cst); } }