JAL-1667 updated test and internationalization messages
[jalview.git] / test / jalview / gui / StructureChooserTest.java
diff --git a/test/jalview/gui/StructureChooserTest.java b/test/jalview/gui/StructureChooserTest.java
new file mode 100644 (file)
index 0000000..078174f
--- /dev/null
@@ -0,0 +1,100 @@
+package jalview.gui;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+import jalview.ws.dbsources.PDBRestClient.PDBDocField;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class StructureChooserTest
+{
+  Sequence seq;
+
+  @Before
+  public void setUp() throws Exception
+  {
+    seq = new Sequence("Test_Seq", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1, 26);
+    seq.setDatasetSequence(seq);
+    for (int x = 1; x < 5; x++)
+    {
+      DBRefEntry dbRef = new DBRefEntry();
+      dbRef.setAccessionId("XYZ_" + x);
+      seq.addDBRef(dbRef);
+    }
+
+    PDBEntry dbRef = new PDBEntry();
+    dbRef.setId("1tim");
+
+    Vector<PDBEntry> pdbIds = new Vector<PDBEntry>();
+    pdbIds.add(dbRef);
+
+    seq.setPDBId(pdbIds);
+  }
+
+  @After
+  public void tearDown() throws Exception
+  {
+    seq = null;
+  }
+
+  @Test
+  public void getPDBIdColumIndexTest()
+  {
+    List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
+    wantedFields.add(PDBDocField.MOLECULE_TYPE);
+    wantedFields.add(PDBDocField.GENUS);
+    wantedFields.add(PDBDocField.GENE_NAME);
+    wantedFields.add(PDBDocField.TITLE);
+    wantedFields.add(PDBDocField.PDB_ID);
+    assertEquals(5, StructureChooser.getPDBIdColumIndex(wantedFields));
+  }
+
+  @Test
+  public void buildQueryTest()
+  {
+    assertEquals(
+            "1tim OR text:XYZ_1 OR text:XYZ_2 OR text:XYZ_3 OR text:XYZ_4",
+            StructureChooser.buildQuery(seq));
+  }
+
+  @Test
+  public void populateFilterComboBoxTest()
+  {
+    SequenceI[] selectedSeqs = new SequenceI[]
+    { seq };
+    StructureChooser sc = new StructureChooser(selectedSeqs, seq,
+            null);
+    sc.populateFilterComboBox();
+    int optionsSize = sc.getCmbFilterOption().getItemCount();
+    assertEquals(2, optionsSize); // if structures are not discovered then don't
+                                  // populate filter options
+
+    sc.setStructuresDiscovered(true);
+    sc.populateFilterComboBox();
+    optionsSize = sc.getCmbFilterOption().getItemCount();
+    assertTrue(optionsSize > 2); // if structures are found, filter options
+                                 // should be populated
+  }
+
+  @Test
+  public void fetchStructuresInfoTest()
+  {
+    SequenceI[] selectedSeqs = new SequenceI[]
+    { seq };
+    StructureChooser sc = new StructureChooser(selectedSeqs, seq, null);
+    sc.fetchStructuresMetaData();
+    assertTrue(sc.getDiscoveredStructuresSet() != null);
+    assertTrue(sc.getDiscoveredStructuresSet().size() > 0);
+
+  }
+}