JAL-3691 automatic insertion of Locale.ROOT to toUpperCase() and toLowerCase() and...
[jalview.git] / test / jalview / io / FileFormatsTest.java
index 542336f..3d25bf1 100644 (file)
@@ -1,5 +1,7 @@
 package jalview.io;
 
+import java.util.Locale;
+
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotEquals;
@@ -10,41 +12,53 @@ import static org.testng.Assert.assertTrue;
 import java.util.Iterator;
 
 import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 public class FileFormatsTest
 {
-  @AfterMethod()
+  @AfterMethod(alwaysRun = true)
   public void tearDown()
   {
     FileFormats.getInstance().reset();
   }
 
+  @BeforeMethod(alwaysRun = true)
+  public void setUp()
+  {
+    FileFormats.getInstance().reset();
+  }
+
   @Test(groups = "Functional")
-  public void testIsDynamic()
+  public void testIsIdentifiable()
   {
     FileFormats formats = FileFormats.getInstance();
-    for (FileFormatI ff : FileFormat.values())
-    {
-      assertFalse(formats.isDynamic(ff));
-    }
-    assertTrue(formats.isDynamic(null));
+    assertTrue(formats
+            .isIdentifiable(formats.forName(FileFormat.Fasta.getName())));
+    assertTrue(formats
+            .isIdentifiable(formats.forName(FileFormat.MMCif.getName())));
+    assertTrue(formats
+            .isIdentifiable(formats.forName(FileFormat.Jnet.getName())));
+    assertTrue(formats
+            .isIdentifiable(formats.forName(FileFormat.Jalview.getName())));
+    // GenBank/ENA
+    assertFalse(formats.isIdentifiable(null));
 
     /*
-     * remove and re-add a format: it is now considered 'dynamically added'
+     * remove and re-add a format: it is still 'identifiable'
      */
     formats.deregisterFileFormat(FileFormat.Fasta.getName());
     assertNull(formats.forName(FileFormat.Fasta.getName()));
     formats.registerFileFormat(FileFormat.Fasta);
     assertSame(FileFormat.Fasta,
             formats.forName(FileFormat.Fasta.getName()));
-    assertTrue(formats.isDynamic(FileFormat.Fasta));
+    assertTrue(formats.isIdentifiable(FileFormat.Fasta));
   }
 
   @Test(groups = "Functional")
   public void testGetReadableFormats()
   {
-    String expected = "[Fasta, PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GFF or Jalview features, PDB, mmCIF, Jalview]";
+    String expected = "[Fasta, PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GenBank Flatfile, ENA Flatfile, GFF or Jalview features, PDB, mmCIF, Jalview]";
     FileFormats formats = FileFormats.getInstance();
     assertEquals(formats.getReadableFormats().toString(), expected);
   }
@@ -63,14 +77,14 @@ public class FileFormatsTest
   public void testDeregisterFileFormat()
   {
     String writable = "[Fasta, PFAM, Stockholm, PIR, BLC, AMSA, JSON, PileUp, MSF, Clustal, PHYLIP]";
-    String readable = "[Fasta, PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GFF or Jalview features, PDB, mmCIF, Jalview]";
+    String readable = "[Fasta, PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GenBank Flatfile, ENA Flatfile, GFF or Jalview features, PDB, mmCIF, Jalview]";
     FileFormats formats = FileFormats.getInstance();
     assertEquals(formats.getWritableFormats(true).toString(), writable);
     assertEquals(formats.getReadableFormats().toString(), readable);
 
     formats.deregisterFileFormat(FileFormat.Fasta.getName());
     writable = "[PFAM, Stockholm, PIR, BLC, AMSA, JSON, PileUp, MSF, Clustal, PHYLIP]";
-    readable = "[PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GFF or Jalview features, PDB, mmCIF, Jalview]";
+    readable = "[PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GenBank Flatfile, ENA Flatfile, GFF or Jalview features, PDB, mmCIF, Jalview]";
     assertEquals(formats.getWritableFormats(true).toString(), writable);
     assertEquals(formats.getReadableFormats().toString(), readable);
 
@@ -79,7 +93,7 @@ public class FileFormatsTest
      */
     formats.registerFileFormat(FileFormat.Fasta);
     writable = "[PFAM, Stockholm, PIR, BLC, AMSA, JSON, PileUp, MSF, Clustal, PHYLIP, Fasta]";
-    readable = "[PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GFF or Jalview features, PDB, mmCIF, Jalview, Fasta]";
+    readable = "[PFAM, Stockholm, PIR, BLC, AMSA, HTML, RNAML, JSON, PileUp, MSF, Clustal, PHYLIP, GenBank Flatfile, ENA Flatfile, GFF or Jalview features, PDB, mmCIF, Jalview, Fasta]";
     assertEquals(formats.getWritableFormats(true).toString(), writable);
     assertEquals(formats.getReadableFormats().toString(), readable);
   }
@@ -91,8 +105,8 @@ public class FileFormatsTest
     for (FileFormatI ff : FileFormat.values())
     {
       assertSame(ff, formats.forName(ff.getName()));
-      assertSame(ff, formats.forName(ff.getName().toUpperCase()));
-      assertSame(ff, formats.forName(ff.getName().toLowerCase()));
+      assertSame(ff, formats.forName(ff.getName().toUpperCase(Locale.ROOT)));
+      assertSame(ff, formats.forName(ff.getName().toLowerCase(Locale.ROOT)));
     }
     assertNull(formats.forName(null));
     assertNull(formats.forName("rubbish"));
@@ -104,7 +118,7 @@ public class FileFormatsTest
     FileFormats formats = FileFormats.getInstance();
     assertSame(FileFormat.MMCif,
             formats.forName(FileFormat.MMCif.getName()));
-    assertFalse(formats.isDynamic(FileFormat.MMCif));
+    assertTrue(formats.isIdentifiable(FileFormat.MMCif));
 
     /*
      * deregister mmCIF format
@@ -114,12 +128,12 @@ public class FileFormatsTest
 
     /*
      * re-register mmCIF format
-     * it is reinstated (but now classed as 'dynamic')
+     * it is reinstated (still 'identifiable')
      */
     formats.registerFileFormat(FileFormat.MMCif);
     assertSame(FileFormat.MMCif,
             formats.forName(FileFormat.MMCif.getName()));
-    assertTrue(formats.isDynamic(FileFormat.MMCif));
+    assertTrue(formats.isIdentifiable(FileFormat.MMCif));
     // repeating does nothing
     formats.registerFileFormat(FileFormat.MMCif);
     assertSame(FileFormat.MMCif,
@@ -133,8 +147,7 @@ public class FileFormatsTest
      * verify the list of file formats registered matches the enum values
      */
     FileFormats instance = FileFormats.getInstance();
-    Iterator<FileFormatI> formats = instance.getFormats()
-            .iterator();
+    Iterator<FileFormatI> formats = instance.getFormats().iterator();
     FileFormatI[] builtIn = FileFormat.values();
 
     for (FileFormatI ff : builtIn)