JAL-2430 colour columns hidden in alignment gray on structure
[jalview.git] / test / jalview / schemes / ColourSchemesTest.java
index 1bc6348..4618ed7 100644 (file)
@@ -1,6 +1,8 @@
 package jalview.schemes;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
 import jalview.bin.Cache;
@@ -9,7 +11,6 @@ import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.SequenceCollectionI;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
-import jalview.gui.AlignViewport;
 import jalview.gui.Desktop;
 import jalview.gui.SequenceRenderer;
 import jalview.io.DataSourceType;
@@ -32,46 +33,52 @@ public class ColourSchemesTest
    */
   class Stripy extends ResidueColourScheme
   {
+    private ResidueColourScheme odd;
+
+    private ResidueColourScheme even;
+
+    private Stripy()
+    {
+    }
+
+    /**
+     * constructor given colours for odd and even columns
+     * 
+     * @param odd
+     * @param even
+     */
+    private Stripy(ColourSchemeI cs1, ColourSchemeI cs2)
+    {
+      odd = (ResidueColourScheme) cs1;
+      even = (ResidueColourScheme) cs2;
+    }
+
     @Override
     public ColourSchemeI getInstance(AnnotatedCollectionI sg,
             Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
     {
-      final ColourSchemeI odd = ColourSchemes.getInstance()
+      final ColourSchemeI cs1 = ColourSchemes.getInstance()
               .getColourScheme(JalviewColourScheme.Taylor.toString(),
                       (AnnotatedCollectionI) null);
-      final ColourSchemeI even = ColourSchemes.getInstance()
+      final ColourSchemeI cs2 = ColourSchemes.getInstance()
               .getColourScheme(JalviewColourScheme.Zappo.toString(),
                       (AnnotatedCollectionI) null);
-      return new ResidueColourScheme() {
-        @Override
-        public Color findColour(char c, int j, SequenceI seq)
-        {
-          if (j % 2 == 1)
-          {
-            return odd.findColour(c, j, seq);
-          }
-          else
-          {
-            return even.findColour(c, j, seq);
-          }
-        }
-
-        @Override
-        public ColourSchemeI getInstance(AnnotatedCollectionI sg,
-                Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
-        {
-          return null;
-        }
+      return new Stripy(cs1, cs2);
+    }
 
-        @Override
-        public String getSchemeName()
-        {
-          return Stripy.this.getSchemeName();
-        }
-        
-      };
+    @Override
+    public Color findColour(char c, int j, SequenceI seq)
+    {
+      if (j % 2 == 1)
+      {
+        return odd.findColour(c, j, seq);
+      }
+      else
+      {
+        return even.findColour(c, j, seq);
+      }
     }
-    
+
     @Override
     public String getSchemeName()
     {
@@ -84,15 +91,16 @@ public class ColourSchemesTest
    */
   class MyClustal extends ResidueColourScheme
   {
-    ColourSchemeI delegate;
+    ClustalxColourScheme delegate;
 
-    public MyClustal()
+    private MyClustal()
     {
     }
 
-    public MyClustal(ColourSchemeI scheme)
+    private MyClustal(AnnotatedCollectionI sg,
+            Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
     {
-      delegate = scheme;
+      delegate = new ClustalxColourScheme(sg, hiddenRepSequences);
     }
 
     @Override
@@ -139,8 +147,7 @@ public class ColourSchemesTest
     public ColourSchemeI getInstance(AnnotatedCollectionI sg,
             Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
     {
-      return new MyClustal(new ClustalxColourScheme().getInstance(sg,
-              hiddenRepSequences));
+      return new MyClustal(sg,              hiddenRepSequences);
     }
 
     @Override
@@ -187,76 +194,19 @@ public class ColourSchemesTest
   }
 
   @Test(groups = "Functional")
-  public void testGetColourScheme_forViewport()
+  public void testGetColourScheme()
   {
     AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
             ">seq1\nAGLRTWQU", DataSourceType.PASTE);
-    ColourSchemes cs = ColourSchemes.getInstance();
-
-    AlignViewport viewport = af.getViewport();
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Blosum62.toString(),
-            viewport) instanceof Blosum62ColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Buried.toString(),
-            viewport) instanceof BuriedColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Clustal.toString(),
-            viewport) instanceof ClustalxColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Helix.toString(),
-            viewport) instanceof HelixColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Hydrophobic.toString(), viewport) instanceof HydrophobicColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Nucleotide.toString(), viewport) instanceof NucleotideColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.PID.toString(),
-            viewport) instanceof PIDColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.PurinePyrimidine.toString(), viewport) instanceof PurinePyrimidineColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.RNAHelices.toString(), viewport) instanceof RNAHelicesColour);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Strand.toString(),
-            viewport) instanceof StrandColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Taylor.toString(),
-            viewport) instanceof TaylorColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.TCoffee.toString(),
-            viewport) instanceof TCoffeeColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Turn.toString(),
-            viewport) instanceof TurnColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Zappo.toString(),
-            viewport) instanceof ZappoColourScheme);
-    af.closeMenuItem_actionPerformed(true);
-  }
-
-  @Test(groups = "Functional")
-  public void testGetColourScheme_forAnnotatedCollection()
-  {
-    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
-            ">seq1\nAGLRTWQU", DataSourceType.PASTE);
-    ColourSchemes cs = ColourSchemes.getInstance();
+    ColourSchemes schemes = ColourSchemes.getInstance();
 
     AnnotatedCollectionI al = af.getViewport().getAlignment();
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Blosum62.toString(),
-            al) instanceof Blosum62ColourScheme);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Buried.toString(), al) instanceof BuriedColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Clustal.toString(),
-            al) instanceof ClustalxColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Helix.toString(), al) instanceof HelixColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Hydrophobic.toString(), al) instanceof HydrophobicColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.Nucleotide.toString(), al) instanceof NucleotideColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.PID.toString(), al) instanceof PIDColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.PurinePyrimidine.toString(), al) instanceof PurinePyrimidineColourScheme);
-    assertTrue(cs.getColourScheme(
-            JalviewColourScheme.RNAHelices.toString(), al) instanceof RNAHelicesColour);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Strand.toString(), al) instanceof StrandColourScheme);
-    assertTrue(cs
-            .getColourScheme(JalviewColourScheme.Taylor.toString(), al) instanceof TaylorColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.TCoffee.toString(),
-            al) instanceof TCoffeeColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Turn.toString(), al) instanceof TurnColourScheme);
-    assertTrue(cs.getColourScheme(JalviewColourScheme.Zappo.toString(), al) instanceof ZappoColourScheme);
+
+    for (JalviewColourScheme cs : JalviewColourScheme.values())
+    {
+      ColourSchemeI registered = schemes.getColourScheme(cs.toString(), al);
+      assertSame(registered.getClass(), cs.getSchemeClass());
+    }
     af.closeMenuItem_actionPerformed(true);
   }
   
@@ -329,4 +279,21 @@ public class ColourSchemesTest
     assertEquals(myclustal2, Color.BLUE);
     assertEquals(myclustal3, Color.ORANGE);
   }
+
+  /**
+   * Tests for check if scheme name exists. Built-in scheme names are the
+   * toString() values of enum JalviewColourScheme.
+   */
+  @Test(groups = "Functional")
+  public void testNameExists()
+  {
+    ColourSchemes cs = ColourSchemes.getInstance();
+    assertFalse(cs.nameExists(null));
+    assertFalse(cs.nameExists(""));
+    assertTrue(cs.nameExists("Clustal"));
+    assertTrue(cs.nameExists("CLUSTAL"));
+    assertFalse(cs.nameExists("CLUSTAL "));
+    assertTrue(cs.nameExists("% Identity"));
+    assertFalse(cs.nameExists("PID"));
+  }
 }