1 package com.atlassian.core.spool; 2 3 import junit.framework.TestCase; 4 import org.apache.commons.io.IOUtils; 5 6 import java.io.ByteArrayInputStream; 7 import java.io.File; 8 import java.io.IOException; 9 import java.io.InputStream; 10 import java.util.Random; 11 12 public abstract class AbstractSpoolTest extends TestCase 13 { 14 private static int counter = -1; 15 16 public byte[] getTestData(int size) 17 { 18 byte[] data = new byte[size]; 19 for (int x = 0; x < size; x++) 20 data[x] = (byte) (Math.random() * Byte.MAX_VALUE); 21 return data; 22 } 23 24 public void verifySpool(Spool spool, byte[] data) throws IOException 25 { 26 ByteArrayInputStream dataStream = new ByteArrayInputStream(data); 27 verifySpool(spool, dataStream); 28 } 29 30 public void verifySpool(Spool spool, InputStream dataStream) throws IOException 31 { 32 InputStream spoolStream = spool.spool(dataStream); 33 dataStream.reset(); 34 assertTrue("Stream duplicated exactly", IOUtils.contentEquals(dataStream, spoolStream)); 35 } 36 37 private static File generateFile(String prefix, String suffix, File dir) 38 { 39 if (counter == -1) 40 { 41 counter = new Random().nextInt() & 0xffff; 42 } 43 counter++; 44 return new File(dir, prefix + Integer.toString(counter) + suffix); 45 } 46 47 public File getTestFile() 48 { 49 return generateFile("spool", "test", new File("target")); 50 } 51 52 }