@Test
public void testCreateChunksFrom5MBFileAndTestChunkSize() throws Exception {

	// Test Constants
	final int TOTAL_FILE_SIZE = 5*1024*1024;
	final int AVG_CHUNK_SIZE = 512*1024;
	
	// Setup				
	File inputRandom5MBFile = TestFileUtil.createRandomFileInDirectory(tempDir, TOTAL_FILE_SIZE);
	
	File outputCopyOfRandom5MBFile = TestFileUtil.getRandomFilenameInDirectory(tempDir);
	FileOutputStream outputCopyOfRandom5MBFileOutputStream = new FileOutputStream(outputCopyOfRandom5MBFile);
	
	Chunker chunker = new TttdChunker(AVG_CHUNK_SIZE);
	
	// Create chunks
	Enumeration<Chunk> chunkEnumeration = chunker.createChunks(inputRandom5MBFile);
	Chunk lastChunk = null;
	
	while (chunkEnumeration.hasMoreElements()) {
		lastChunk = chunkEnumeration.nextElement();
		
		// Checksum
		assertNotNull("Chunk checksum should not be null.", lastChunk.getChecksum());
		
		outputCopyOfRandom5MBFileOutputStream.write(lastChunk.getContent(), 0, lastChunk.getSize());
	}
	
	outputCopyOfRandom5MBFileOutputStream.close();
	
	// Number of chunks
	// TODO [low] How to test the number of chunks?
	// Checksums
	byte[] inputFileChecksum = FileUtil.createChecksum(inputRandom5MBFile, TttdChunker.DEFAULT_DIGEST_ALG);
	byte[] outputFileChecksum = FileUtil.createChecksum(outputCopyOfRandom5MBFile, TttdChunker.DEFAULT_DIGEST_ALG);
	
	assertArrayEquals("Checksums of input and output file do not match.", inputFileChecksum, outputFileChecksum);
	assertArrayEquals("Last chunk's getFileChecksum() should be the file checksum.", inputFileChecksum, lastChunk.getFileChecksum());
}