2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
24 import java.io.IOException;
26 import org.testng.AssertJUnit;
27 import org.testng.annotations.AfterClass;
28 import org.testng.annotations.BeforeClass;
29 import org.testng.annotations.Test;
35 public class FileIOTester
39 * @throws java.lang.Exception
41 @BeforeClass(alwaysRun = true)
42 public static void setUpBeforeClass() throws Exception
47 * @throws java.lang.Exception
49 @AfterClass(alwaysRun = true)
50 public static void tearDownAfterClass() throws Exception
54 // TODO: make a better/more comprehensive test harness for identify/io
56 final static File ALIGN_FILE = new File(
57 "test/jalview/io/test_gz_fasta.gz");
59 final static File NOTGZALIGN_FILE = new File(
60 "test/jalview/io/test_gz_fasta_notgz.gz");
62 final static File STARS_FA_FILE1 = new File(
63 "test/jalview/io/test_fasta_stars.fa");
65 final static File STARS_FA_FILE2 = new File(
66 "test/jalview/io/test_fasta_stars2.fa");
68 private void assertValidFormat(FileFormatI fmt, String src, FileParse fp)
69 throws FileFormatException
71 AssertJUnit.assertTrue("Couldn't resolve " + src + " as a valid file",
73 FileFormatI type = new IdentifyFile().identify(fp);
74 AssertJUnit.assertSame("Data from '" + src + "' Expected to be '" + fmt
75 + "' identified as '" + type + "'", type, fmt);
78 @Test(groups = { "Functional" })
79 public void testStarsInFasta1() throws IOException
82 FileParse fp = new FileParse(uri = STARS_FA_FILE1.getAbsoluteFile()
83 .toString(), DataSourceType.FILE);
84 assertValidFormat(FileFormat.Fasta, uri, fp);
87 @Test(groups = { "Functional" })
88 public void testStarsInFasta2() throws IOException
91 FileParse fp = new FileParse(uri = STARS_FA_FILE2.getAbsoluteFile()
92 .toString(), DataSourceType.FILE);
93 assertValidFormat(FileFormat.Fasta, uri, fp);
96 @Test(groups = { "Functional" })
97 public void testGzipIo() throws IOException
100 FileParse fp = new FileParse(uri = ALIGN_FILE.getAbsoluteFile().toURI()
101 .toString(), DataSourceType.URL);
102 assertValidFormat(FileFormat.Fasta, uri, fp);
105 @Test(groups = { "Functional" })
106 public void testGziplocalFileIO() throws IOException
109 FileParse fp = new FileParse(filepath = ALIGN_FILE.getAbsoluteFile()
110 .toString(), DataSourceType.FILE);
111 assertValidFormat(FileFormat.Fasta, filepath, fp);
114 @Test(groups = { "Functional" })
115 public void testNonGzipURLIO() throws IOException
118 FileParse fp = new FileParse(uri = NOTGZALIGN_FILE.getAbsoluteFile()
119 .toURI().toString(), DataSourceType.URL);
120 assertValidFormat(FileFormat.Fasta, uri, fp);
123 @Test(groups = { "Functional" })
124 public void testNonGziplocalFileIO() throws IOException
127 FileParse fp = new FileParse(filepath = NOTGZALIGN_FILE
128 .getAbsoluteFile().toString(), DataSourceType.FILE);
129 assertValidFormat(FileFormat.Fasta, filepath, fp);