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.
23 import jalview.gui.JvOptionPane;
26 import java.io.IOException;
28 import org.testng.AssertJUnit;
29 import org.testng.annotations.AfterClass;
30 import org.testng.annotations.BeforeClass;
31 import org.testng.annotations.Test;
37 public class FileIOTester
40 @BeforeClass(alwaysRun = true)
41 public void setUpJvOptionPane()
43 JvOptionPane.setInteractiveMode(false);
44 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
48 * @throws java.lang.Exception
50 @BeforeClass(alwaysRun = true)
51 public static void setUpBeforeClass() throws Exception
56 * @throws java.lang.Exception
58 @AfterClass(alwaysRun = true)
59 public static void tearDownAfterClass() throws Exception
63 // TODO: make a better/more comprehensive test harness for identify/io
65 final static File ALIGN_FILE = new File(
66 "test/jalview/io/test_gz_fasta.gz");
68 final static File NOTGZALIGN_FILE = new File(
69 "test/jalview/io/test_gz_fasta_notgz.gz");
71 final static File STARS_FA_FILE1 = new File(
72 "test/jalview/io/test_fasta_stars.fa");
74 final static File STARS_FA_FILE2 = new File(
75 "test/jalview/io/test_fasta_stars2.fa");
77 private void assertValidFormat(FileFormatI fmt, String src, FileParse fp)
78 throws FileFormatException
80 AssertJUnit.assertTrue("Couldn't resolve " + src + " as a valid file",
82 FileFormatI type = new IdentifyFile().identify(fp);
83 AssertJUnit.assertSame("Data from '" + src + "' Expected to be '" + fmt
84 + "' identified as '" + type + "'", type, fmt);
87 @Test(groups = { "Functional" })
88 public void testStarsInFasta1() throws IOException
91 FileParse fp = new FileParse(uri = STARS_FA_FILE1.getAbsoluteFile()
92 .toString(), DataSourceType.FILE);
93 assertValidFormat(FileFormat.Fasta, uri, fp);
96 @Test(groups = { "Functional" })
97 public void testStarsInFasta2() throws IOException
100 FileParse fp = new FileParse(uri = STARS_FA_FILE2.getAbsoluteFile()
101 .toString(), DataSourceType.FILE);
102 assertValidFormat(FileFormat.Fasta, uri, fp);
105 @Test(groups = { "Functional" })
106 public void testGzipIo() throws IOException
109 FileParse fp = new FileParse(uri = ALIGN_FILE.getAbsoluteFile().toURI()
110 .toString(), DataSourceType.URL);
111 assertValidFormat(FileFormat.Fasta, uri, fp);
114 @Test(groups = { "Functional" })
115 public void testGziplocalFileIO() throws IOException
118 FileParse fp = new FileParse(filepath = ALIGN_FILE.getAbsoluteFile()
119 .toString(), DataSourceType.FILE);
120 assertValidFormat(FileFormat.Fasta, filepath, fp);
123 @Test(groups = { "Functional" })
124 public void testNonGzipURLIO() throws IOException
127 FileParse fp = new FileParse(uri = NOTGZALIGN_FILE.getAbsoluteFile()
128 .toURI().toString(), DataSourceType.URL);
129 assertValidFormat(FileFormat.Fasta, uri, fp);
132 @Test(groups = { "Functional" })
133 public void testNonGziplocalFileIO() throws IOException
136 FileParse fp = new FileParse(filepath = NOTGZALIGN_FILE
137 .getAbsoluteFile().toString(), DataSourceType.FILE);
138 assertValidFormat(FileFormat.Fasta, filepath, fp);