// 2012-12-27 johnpfeiffer
package net.kittyandbear;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith( value = Parameterized.class )
public class CalculateSha1Test {
private String fileName;
private String fileContents;
private String fileSha1;
public CalculateSha1Test( String fileName, String fileContents, String fileSha1 ) {
this.fileName = fileName;
this.fileContents = fileContents;
this.fileSha1 = fileSha1;
}
@Parameters
public static Collection<Object[]> data() {
Object[][] data = new Object[][] {
{ "abc.txt", "abc", "a9993e364706816aba3e25717850c26c9cd0d89d" },
{ "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq.txt","abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "84983E441C3BD26EBAAE4AA1F95129E5E54670F1" },
};
return Arrays.asList( data );
}
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Test
public void testFile() throws IOException {
System.out.println( "DEBUG: File " + fileContents );
File testFile = folder.newFile( fileName );
FileWriter outFile = new FileWriter( testFile );
PrintWriter out = new PrintWriter( outFile );
out.print( fileContents );
out.close();
CalculateSha1 test = new CalculateSha1( testFile.getAbsolutePath() );
assertEquals( fileSha1.toLowerCase(), test.getSha1() );
}
@Test
public void testInputStream() throws IOException {
System.out.println( "DEBUG: Stream " + fileContents );
InputStream testStream = new ByteArrayInputStream( fileContents.getBytes( "UTF-8" ) );
CalculateSha1 test = new CalculateSha1( testStream );
assertEquals( fileSha1.toLowerCase(), test.getSha1() );
}
@Test
public void testByteArray() throws Exception {
System.out.println( "DEBUG: Byte " + fileContents );
assertEquals( fileSha1.toLowerCase(), CalculateSha1.computeSHA1Hash( fileContents.getBytes() ) );
}
} // end class