Merge branch 'develop' into bug/JAL-2225mapMultipleChains
[jalview.git] / test / jalview / gui / SequenceRendererTest.java
index c80b830..359377a 100644 (file)
  */
 package jalview.gui;
 
-import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.Assert.assertEquals;
 
+import jalview.bin.Jalview;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.renderer.ResidueShader;
+import jalview.renderer.ResidueShaderI;
 import jalview.schemes.ZappoColourScheme;
 
 import java.awt.Color;
 
 import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 public class SequenceRendererTest
 {
+  AlignmentI al;
+  AlignViewport av;
+
+  SequenceI seq1;
 
   @BeforeClass(alwaysRun = true)
-  public void setUpJvOptionPane()
+  public static void setUpBeforeClass() throws Exception
   {
-    JvOptionPane.setInteractiveMode(false);
-    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+    Jalview.main(
+            new String[]
+    { "-nonews", "-props", "test/jalview/testProps.jvprops" });
   }
 
-  @Test(groups = { "Functional" })
-  public void testGetResidueBoxColour_zappo()
+  @BeforeMethod(alwaysRun = true)
+  public void setUp()
   {
-    SequenceI seq = new Sequence("name", "MATVLGSPRAPAFF"); // FER1_MAIZE...
-    AlignmentI al = new Alignment(new SequenceI[] { seq });
-    final AlignViewport av = new AlignViewport(al);
-    SequenceRenderer sr = new SequenceRenderer(av);
-    av.setGlobalColourScheme(new ZappoColourScheme());
-
-    // @see ResidueProperties.zappo
-    assertEquals(Color.pink, sr.getResidueBoxColour(seq, 0)); // M
-    assertEquals(Color.green, sr.getResidueBoxColour(seq, 2)); // T
-    assertEquals(Color.magenta, sr.getResidueBoxColour(seq, 5)); // G
-    assertEquals(Color.orange, sr.getResidueBoxColour(seq, 12)); // F
+    seq1 = new Sequence("Seq1", "ABCEEEABCABC");
+    SequenceI seq2 = new Sequence("Seq2", "ABCABCABCABC");
+    SequenceI seq3 = new Sequence("Seq3", "ABCABCABCABC");
+    SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3 };
+    al = new Alignment(seqs);
+    al.setDataset(null);
+    av = new AlignViewport(al);
   }
 
-  @Test(groups = { "Functional" })
-  public void testGetResidueBoxColour_none()
+  @Test(groups = "Functional")
+  public void testGetResidueColour_WithGroup()
   {
-    SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF");
-    AlignmentI al = new Alignment(new SequenceI[] { seq });
-    final AlignViewport av = new AlignViewport(al);
     SequenceRenderer sr = new SequenceRenderer(av);
+    SequenceGroup sg = new SequenceGroup();
+    sg.addSequence(seq1, false);
+    sg.setStartRes(3);
+    sg.setEndRes(5);
 
-    assertEquals(Color.white, sr.getResidueBoxColour(seq, 0));
-    assertEquals(Color.white, sr.getResidueBoxColour(seq, 2));
+    ResidueShaderI rs = new ResidueShader();
+    rs.setColourScheme(new ZappoColourScheme());
+    sg.setGroupColourScheme(rs);
 
-    // set for overview
-    sr.forOverview = true;
-    assertEquals(Color.lightGray, sr.getResidueBoxColour(seq, 0));
-    assertEquals(Color.white, sr.getResidueBoxColour(seq, 2));
-  }
+    av.getAlignment().addGroup(sg);
 
-  // TODO more tests for getResidueBoxColour covering groups, feature rendering,
-  // gaps, overview...
+    // outside group residues are white
+    assertEquals(Color.white, sr.getResidueColour(seq1, 1, null));
 
+    // within group use Zappo scheme - E = red
+    assertEquals(Color.red, sr.getResidueColour(seq1, 3, null));
+  }
 }