/*
* Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
* Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
* Jalview is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* Jalview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jalview. If not, see .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.gui;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import java.util.Vector;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class StructureChooserTest
{
Sequence seq;
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
seq = new Sequence("PDB|4kqy|4KQY|A", "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 pdbIds = new Vector();
pdbIds.add(dbRef);
seq.setPDBId(pdbIds);
}
@AfterMethod
public void tearDown() throws Exception
{
seq = null;
}
@Test(groups = { "Functional" })
public void buildQueryTest()
{
String query = StructureChooser.buildQuery(seq);
assertEquals("pdb_id:1tim", query);
System.out.println("seq >>>> " + seq);
seq.getAllPDBEntries().clear();
query = StructureChooser.buildQuery(seq);
assertEquals(
"text:XYZ_1 OR text:XYZ_2 OR text:XYZ_3 OR text:XYZ_4 OR text:4kqy",
query);
seq.setDBRefs(null);
query = StructureChooser.buildQuery(seq);
assertEquals("text:4kqy", query);
}
@Test(groups = { "Functional" })
public void populateFilterComboBoxTest()
{
SequenceI[] selectedSeqs = new SequenceI[] { seq };
StructureChooser sc = new StructureChooser(selectedSeqs, seq, null);
sc.populateFilterComboBox();
int optionsSize = sc.getCmbFilterOption().getItemCount();
assertEquals(3, optionsSize); // if structures are not discovered then don't
// populate filter options
sc.setStructuresDiscovered(true);
sc.populateFilterComboBox();
try
{
Thread.sleep(2000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
optionsSize = sc.getCmbFilterOption().getItemCount();
assertTrue(optionsSize > 3); // if structures are found, filter options
// should be populated
}
@Test(groups = { "Functional" })
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);
}
}