1 package jalview.gui; 2 3 import static org.testng.Assert.assertEquals; 4 5 import jalview.bin.Cache; 6 import jalview.datamodel.AlignmentAnnotation; 7 import jalview.datamodel.AlignmentI; 8 import jalview.datamodel.SequenceI; 9 import jalview.io.DataSourceType; 10 import jalview.io.FileLoader; 11 12 import java.util.Vector; 13 14 import org.testng.annotations.BeforeClass; 15 import org.testng.annotations.Test; 16 17 /** 18 * Tests for methods of base class of annotation column or colour chooser 19 */ 20 public class AnnotationRowFilterTest 21 { 22 AlignFrame af; 23 24 private AnnotationRowFilter testee; 25 26 @BeforeClass(alwaysRun = true) setUp()27 public void setUp() 28 { 29 Cache.loadProperties("test/jalview/io/testProps.jvprops"); 30 Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS", 31 Boolean.TRUE.toString()); 32 Cache.applicationProperties.setProperty( 33 Preferences.SHOW_AUTOCALC_ABOVE, Boolean.TRUE.toString()); 34 af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa", 35 DataSourceType.FILE); 36 testee = new AnnotationRowFilter(af.viewport, af.alignPanel) 37 { 38 @Override 39 public void valueChanged(boolean updateAllAnnotation) 40 { 41 } 42 43 @Override 44 public void updateView() 45 { 46 } 47 48 @Override 49 public void reset() 50 { 51 } 52 }; 53 } 54 55 /** 56 * Test the method that builds the drop-down list of annotations to choose 57 * from for colour by annotation or select columns by annotation 58 */ 59 @Test(groups = "Functional") testGetAnnotationItems()60 public void testGetAnnotationItems() 61 { 62 AlignmentI al = af.getViewport().getAlignment(); 63 SequenceI seq1 = al.findSequenceMatch("FER_CAPAA")[0]; 64 SequenceI seq2 = al.findSequenceMatch("FER_BRANA")[0]; 65 66 AlignmentAnnotation ann1 = new AlignmentAnnotation("ann1Label", "ann1", 67 null); 68 al.addAnnotation(ann1); 69 AlignmentAnnotation ann2 = new AlignmentAnnotation("Significance", 70 "ann2", null); 71 al.addAnnotation(ann2); 72 /* 73 * a second Significance alignment annotation 74 */ 75 AlignmentAnnotation ann2a = new AlignmentAnnotation("Significance", 76 "ann2", null); 77 al.addAnnotation(ann2a); 78 79 AlignmentAnnotation ann3 = new AlignmentAnnotation("Jronn", "Jronn", 80 null); 81 ann3.setSequenceRef(seq1); 82 al.addAnnotation(ann3); 83 AlignmentAnnotation ann4 = new AlignmentAnnotation("Jronn", "Jronn", 84 null); 85 ann4.setSequenceRef(seq2); 86 al.addAnnotation(ann4); 87 AlignmentAnnotation ann5 = new AlignmentAnnotation("Jnet", "Jnet", null); 88 ann5.setSequenceRef(seq2); 89 al.addAnnotation(ann5); 90 /* 91 * a second Jnet annotation for FER_BRANA 92 */ 93 AlignmentAnnotation ann6 = new AlignmentAnnotation("Jnet", "Jnet", null); 94 ann6.setSequenceRef(seq2); 95 al.addAnnotation(ann6); 96 97 /* 98 * drop-down items with 'Per-sequence only' not checked 99 */ 100 Vector<String> items = testee.getAnnotationItems(false); 101 assertEquals( 102 items.toString(), 103 "[Conservation, Quality, Consensus, Occupancy, ann1Label, Significance, Significance_1, Jronn_FER_CAPAA, Jronn_FER_BRANA, Jnet_FER_BRANA, Jnet_FER_BRANA_2]"); 104 assertEquals(testee.getAnnotationMenuLabel(ann1), "ann1Label"); 105 assertEquals(testee.getAnnotationMenuLabel(ann2), "Significance"); 106 assertEquals(testee.getAnnotationMenuLabel(ann2a), "Significance_1"); 107 assertEquals(testee.getAnnotationMenuLabel(ann3), "Jronn_FER_CAPAA"); 108 assertEquals(testee.getAnnotationMenuLabel(ann4), "Jronn_FER_BRANA"); 109 assertEquals(testee.getAnnotationMenuLabel(ann5), "Jnet_FER_BRANA"); 110 assertEquals(testee.getAnnotationMenuLabel(ann6), "Jnet_FER_BRANA_2"); 111 112 /* 113 * drop-down items with 'Per-sequence only' checked 114 */ 115 items = testee.getAnnotationItems(true); 116 assertEquals(items.toString(), "[Jronn, Jnet]"); 117 // the first annotation of the type is associated with the menu item 118 assertEquals(testee.getAnnotationMenuLabel(ann3), "Jronn"); 119 assertEquals(testee.getAnnotationMenuLabel(ann5), "Jnet"); 120 } 121 } 122