*/
package jalview.io;
-import jalview.gui.JvOptionPane;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringBufferInputStream;
import org.testng.AssertJUnit;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
+
/**
* @author jimp
*
@BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
+ Cache.initLogger();
}
/**
final static File STARS_FA_FILE2 = new File(
"test/jalview/io/test_fasta_stars2.fa");
- private void assertValidFormat(String fmt, String src, FileParse fp)
+ private void assertValidFormat(FileFormatI fmt, String src, FileParse fp)
+ throws FileFormatException
{
AssertJUnit.assertTrue("Couldn't resolve " + src + " as a valid file",
fp.isValid());
- String type = new IdentifyFile().identify(fp);
- AssertJUnit.assertTrue("Data from '" + src + "' Expected to be '" + fmt
- + "' identified as '" + type + "'", type.equalsIgnoreCase(fmt));
+ FileFormatI type = new IdentifyFile().identify(fp);
+ AssertJUnit.assertSame("Data from '" + src + "' Expected to be '" + fmt
+ + "' identified as '" + type + "'", type, fmt);
}
@Test(groups = { "Functional" })
public void testStarsInFasta1() throws IOException
{
String uri;
- FileParse fp = new FileParse(uri = STARS_FA_FILE1.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", uri, fp);
+ FileParse fp = new FileParse(
+ uri = STARS_FA_FILE1.getAbsoluteFile().toString(),
+ DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
public void testStarsInFasta2() throws IOException
{
String uri;
- FileParse fp = new FileParse(uri = STARS_FA_FILE2.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", uri, fp);
+ FileParse fp = new FileParse(
+ uri = STARS_FA_FILE2.getAbsoluteFile().toString(),
+ DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
public void testGzipIo() throws IOException
{
String uri;
- FileParse fp = new FileParse(uri = ALIGN_FILE.getAbsoluteFile().toURI()
- .toString(), AppletFormatAdapter.URL);
- assertValidFormat("FASTA", uri, fp);
+ FileParse fp = new FileParse(
+ uri = ALIGN_FILE.getAbsoluteFile().toURI().toString(),
+ DataSourceType.URL);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
public void testGziplocalFileIO() throws IOException
{
String filepath;
- FileParse fp = new FileParse(filepath = ALIGN_FILE.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", filepath, fp);
+ FileParse fp = new FileParse(
+ filepath = ALIGN_FILE.getAbsoluteFile().toString(),
+ DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, filepath, fp);
+ }
+
+ @Test(groups = { "Functional" })
+ public void testIsGzipInputStream() throws IOException
+ {
+ InputStream is = new FileInputStream(ALIGN_FILE);
+
+ /*
+ * first try fails - FileInputStream does not support mark/reset
+ */
+ assertFalse(FileParse.isGzipStream(is));
+
+ /*
+ * wrap in a BufferedInputStream and try again
+ */
+ is = new BufferedInputStream(is, 16);
+ assertTrue(FileParse.isGzipStream(is));
+
+ /*
+ * check recognition of non-gzipped input
+ */
+ assertFalse(FileParse.isGzipStream(new BufferedInputStream(
+ new ByteArrayInputStream("NOT A GZIP".getBytes()))));
}
@Test(groups = { "Functional" })
public void testNonGzipURLIO() throws IOException
{
String uri;
- FileParse fp = new FileParse(uri = NOTGZALIGN_FILE.getAbsoluteFile()
- .toURI().toString(), AppletFormatAdapter.URL);
- assertValidFormat("FASTA", uri, fp);
+ FileParse fp = new FileParse(
+ uri = NOTGZALIGN_FILE.getAbsoluteFile().toURI().toString(),
+ DataSourceType.URL);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
public void testNonGziplocalFileIO() throws IOException
{
String filepath;
- FileParse fp = new FileParse(filepath = NOTGZALIGN_FILE
- .getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", filepath, fp);
+ FileParse fp = new FileParse(
+ filepath = NOTGZALIGN_FILE.getAbsoluteFile().toString(),
+ DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, filepath, fp);
}
}