X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FFormatAdapterTest.java;h=d63fb70966443b5a0175e9416b9f9329d32e4ad1;hb=f5f6af7c725d698fd1f53aca15b9a5e5743ae434;hp=81e336e375b8f926608e95adfbebe72da6283cfc;hpb=063142d5fe1679310fd6509ad78ef94c5b345f11;p=jalview.git diff --git a/test/jalview/io/FormatAdapterTest.java b/test/jalview/io/FormatAdapterTest.java index 81e336e..d63fb70 100644 --- a/test/jalview/io/FormatAdapterTest.java +++ b/test/jalview/io/FormatAdapterTest.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io; import static org.testng.AssertJUnit.assertEquals; @@ -6,30 +26,47 @@ import static org.testng.AssertJUnit.fail; import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; +import jalview.gui.JvOptionPane; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; +import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class FormatAdapterTest { + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + /** * Test saving and re-reading in a specified format * * @throws IOException */ @Test(groups = { "Functional" }, dataProvider = "formats") - public void testRoundTrip(String format) throws IOException + public void testRoundTrip(FileFormatI format) throws IOException { try { - AlignmentI al = new FormatAdapter().readFile("examples/uniref50.fa", - FormatAdapter.FILE, "FASTA"); + AlignmentI al; + if (format == FileFormat.HMMER3) + { + al = new FormatAdapter().readFile("examples/uniref50.hmm", + DataSourceType.FILE, FileFormat.HMMER3); + } + else + { + al = new FormatAdapter().readFile("examples/uniref50.fa", + DataSourceType.FILE, FileFormat.Fasta); + } /* * 'gap' is the gap character used in the alignment data file here, @@ -43,10 +80,11 @@ public class FormatAdapterTest false); AlignmentI reloaded = new FormatAdapter().readFile(formatted, - FormatAdapter.PASTE, format); + DataSourceType.PASTE, format); List reread = reloaded.getSequences(); - assertEquals("Wrong number of reloaded sequences", seqs.length, - reread.size()); + assertEquals("Wrong number of reloaded sequences", seqs.length, + reread.size()); + int i = 0; for (SequenceI seq : reread) @@ -57,16 +95,14 @@ public class FormatAdapterTest * special case: MSF always uses '.' as gap character */ sequenceString = adjustForGapTreatment(sequenceString, gap, format); - assertEquals( - String.format("Sequence %d: %s", i, - seqs[i].getName()), seqs[i].getSequenceAsString(), - sequenceString); + assertEquals(String.format("Sequence %d: %s", i, seqs[i].getName()), + seqs[i].getSequenceAsString(), sequenceString); i++; } } catch (IOException e) { - fail(String - .format("Format %s failed with %s", format, e.getMessage())); + fail(String.format("Format %s failed with %s", format, + e.getMessage())); } } @@ -82,9 +118,9 @@ public class FormatAdapterTest * @return */ String adjustForGapTreatment(String sequenceString, char gap, - String format) + FileFormatI format) { - if ("MSF".equals(format)) + if (FileFormat.MSF.equals(format)) { /* * MSF forces gap character to '.', so change it back @@ -97,27 +133,26 @@ public class FormatAdapterTest /** * Data provider that serves alignment formats that are both readable and - * writable + * (text) writable * * @return */ @DataProvider(name = "formats") static Object[][] getFormats() { - List both = new ArrayList(); - String[] readable = FormatAdapter.READABLE_FORMATS; - List writeable = Arrays.asList(FormatAdapter.WRITEABLE_FORMATS); - for (String r : readable) + List both = new ArrayList<>(); + for (FileFormatI format : FileFormats.getInstance().getFormats()) { - if (writeable.contains(r)) + if (format.isReadable() && format.isWritable() + && format.isTextFormat()) { - both.add(r); + both.add(format); } } Object[][] formats = new Object[both.size()][]; int i = 0; - for (String format : both) + for (FileFormatI format : both) { formats[i] = new Object[] { format }; i++; @@ -133,6 +168,6 @@ public class FormatAdapterTest @Test(groups = { "Functional" }, enabled = false) public void testOneFormatRoundTrip() throws IOException { - testRoundTrip("JSON"); + testRoundTrip(FileFormat.Json); } }