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");
+ DataSourceType.FILE, FileFormat.Fasta);
/*
* 'gap' is the gap character used in the alignment data file here,
false);
AlignmentI reloaded = new FormatAdapter().readFile(formatted,
- FormatAdapter.PASTE, format);
+ DataSourceType.PASTE, format);
List<SequenceI> reread = reloaded.getSequences();
assertEquals("Wrong number of reloaded sequences", seqs.length,
reread.size());
* @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
/**
* Data provider that serves alignment formats that are both readable and
- * writable
+ * (text) writable
*
* @return
*/
@DataProvider(name = "formats")
static Object[][] getFormats()
{
- List<String> both = new ArrayList<String>();
- String[] readable = FormatAdapter.READABLE_FORMATS;
- List<String> writeable = Arrays.asList(FormatAdapter.WRITEABLE_FORMATS);
- for (String r : readable)
+ List<FileFormatI> both = new ArrayList<FileFormatI>();
+ 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++;
@Test(groups = { "Functional" }, enabled = false)
public void testOneFormatRoundTrip() throws IOException
{
- testRoundTrip("JSON");
+ testRoundTrip(FileFormat.Json);
}
}