--- /dev/null
+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);
+
+ }
+}