JAL-1264 unit tests
[jalview.git] / test / jalview / datamodel / AlignmentTest.java
1 package jalview.datamodel;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6 import jalview.gui.AlignFrame;
7 import jalview.gui.AlignmentPanel;
8 import jalview.io.AppletFormatAdapter;
9
10 import java.io.IOException;
11 import java.util.Iterator;
12
13 import org.junit.Before;
14 import org.junit.Test;
15
16 /**
17  * Unit tests for Alignment datamodel.
18  * 
19  * @author gmcarstairs
20  *
21  */
22 public class AlignmentTest
23 {
24   // @formatter:off
25   private static final String TEST_DATA = 
26           "# STOCKHOLM 1.0\n" +
27           "#=GS D.melanogaster.1 AC AY119185.1/838-902\n" +
28           "#=GS D.melanogaster.2 AC AC092237.1/57223-57161\n" +
29           "#=GS D.melanogaster.3 AC AY060611.1/560-627\n" +
30           "D.melanogaster.1          G.AGCC.CU...AUGAUCGA\n" +
31           "#=GR D.melanogaster.1 SS  ................((((\n" +
32           "D.melanogaster.2          C.AUUCAACU.UAUGAGGAU\n" +
33           "#=GR D.melanogaster.2 SS  ................((((\n" +
34           "D.melanogaster.3          G.UGGCGCU..UAUGACGCA\n" +
35           "#=GR D.melanogaster.3 SS  (.(((...(....(((((((\n";
36   // @formatter:on
37
38
39   private Alignment al;
40
41   /*
42    * Read in Stockholm format test data including secondary structure
43    * annotations.
44    */
45   @Before
46   public void setUp() throws IOException
47   {
48     al = new jalview.io.FormatAdapter().readFile(TEST_DATA,
49             AppletFormatAdapter.PASTE, "STH");
50     AlignFrame af = new AlignFrame(al, 700, 500);
51     new AlignmentPanel(af, af.getViewport());
52   }
53
54   /**
55    * Test method that returns annotations that match on calcId.
56    */
57   @Test
58   public void testFindAnnotation_byCalcId()
59   {
60     Iterable<AlignmentAnnotation> anns = al
61             .findAnnotation("D.melanogaster.3");
62     Iterator<AlignmentAnnotation> iter = anns.iterator();
63     assertTrue(iter.hasNext());
64     AlignmentAnnotation ann = iter.next();
65     assertEquals("D.melanogaster.3", ann.sequenceRef.getName());
66     assertFalse(iter.hasNext());
67   }
68 }