X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2FStructureChooserTest.java;h=f183e5cbbac0c32a230076d57435bbe309fb54c2;hb=ee942237fe5155b25f5419ece71a4084a47e2f41;hp=57aa23c3e4cbd9cc428bf440705332979adf86c4;hpb=55d5f13809722084ebd354dc0a732abe9e991f9f;p=jalview.git diff --git a/test/jalview/gui/StructureChooserTest.java b/test/jalview/gui/StructureChooserTest.java index 57aa23c..f183e5c 100644 --- a/test/jalview/gui/StructureChooserTest.java +++ b/test/jalview/gui/StructureChooserTest.java @@ -21,42 +21,33 @@ package jalview.gui; import static org.testng.Assert.assertEquals; -import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; +import java.util.Collection; +import java.util.Vector; + +import org.junit.Assert; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + import jalview.datamodel.DBRefEntry; -import jalview.datamodel.DBRefSource; import jalview.datamodel.PDBEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import jalview.fts.api.FTSData; -import jalview.fts.api.FTSRestClientI; import jalview.fts.core.FTSRestClient; -import jalview.fts.core.FTSRestRequest; import jalview.fts.service.pdb.PDBFTSRestClient; import jalview.fts.service.pdb.PDBFTSRestClientTest; import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient; import jalview.fts.threedbeacons.TDBeaconsFTSRestClientTest; import jalview.gui.structurechooser.PDBStructureChooserQuerySource; -import jalview.gui.structurechooser.StructureChooserQuerySource; -import jalview.gui.structurechooser.ThreeDBStructureChooserQuerySource; import jalview.jbgui.FilterOption; -import jalview.ws.params.InvalidArgumentException; - -import java.util.Collection; -import java.util.Vector; - -import javax.swing.JComboBox; - -import org.junit.Assert; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - import junit.extensions.PA; +@Test(singleThreaded = true) public class StructureChooserTest { @@ -67,7 +58,7 @@ public class StructureChooserTest JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); } - Sequence seq,upSeq; + Sequence seq,upSeq,upSeq_nocanonical; @BeforeMethod(alwaysRun = true) public void setUp() throws Exception @@ -120,9 +111,15 @@ public class StructureChooserTest + "GTGVHPIVVVQPDAWTEDNGFHAIGQMCEAPVVTREWVLDSVALYQCQELDTYLIPQIPHSHY\n" + "", 1, 1863); - upSeq.createDatasetSequence(); upSeq.setDescription("Breast cancer type 1 susceptibility protein"); + upSeq_nocanonical = new Sequence(upSeq); + upSeq.createDatasetSequence(); upSeq.addDBRef(new DBRefEntry("UNIPROT","0","P38398",null,true)); + + upSeq_nocanonical.createDatasetSequence(); + // not a canonical reference + upSeq_nocanonical.addDBRef(new DBRefEntry("UNIPROT","0","P38398",null,false)); + } @AfterMethod(alwaysRun = true) @@ -130,6 +127,7 @@ public class StructureChooserTest { seq = null; upSeq=null; + upSeq_nocanonical=null; } @Test(groups = { "Functional" }) @@ -140,6 +138,7 @@ public class StructureChooserTest SequenceI[] selectedSeqs = new SequenceI[] { seq }; StructureChooser sc = new StructureChooser(selectedSeqs, seq, null); + ThreadwaitFor(200, sc); // if structures are not discovered then don't // populate filter options @@ -154,7 +153,7 @@ public class StructureChooserTest } // report items when this fails - seems to be a race condition - assertEquals(optionsSize,2,items.toString()); + Assert.assertEquals(items.toString(),optionsSize,2); sc.populateFilterComboBox(true, false); optionsSize = sc.getCmbFilterOption().getItemCount(); @@ -171,6 +170,20 @@ public class StructureChooserTest } + @Test(groups = { "Functional" }) + public void displayTDBQueryTest() throws InterruptedException + { + TDBeaconsFTSRestClientTest.setMock(); + PDBFTSRestClientTest.setMock(); + + SequenceI[] selectedSeqs = new SequenceI[] { upSeq_nocanonical }; + StructureChooser sc = new StructureChooser(selectedSeqs, upSeq_nocanonical, null); + // mock so should be quick. Exceptions from mocked PDBFTS are expected too + ThreadwaitFor(500, sc); + + assertTrue(sc.isCanQueryTDB() && sc.isNotQueriedTDBYet()); + } + @Test(groups = { "Network" }) public void fetchStructuresInfoTest() { @@ -178,6 +191,9 @@ public class StructureChooserTest PDBFTSRestClient.unMock((FTSRestClient) PDBFTSRestClient.getInstance()); SequenceI[] selectedSeqs = new SequenceI[] { seq }; StructureChooser sc = new StructureChooser(selectedSeqs, seq, null); + // not mocked, wait for 2s + ThreadwaitFor(2000, sc); + sc.fetchStructuresMetaData(); Collection ss = (Collection) PA.getValue(sc, "discoveredStructuresSet"); @@ -192,6 +208,8 @@ public class StructureChooserTest PDBFTSRestClientTest.setMock(); SequenceI[] selectedSeqs = new SequenceI[] { upSeq }; StructureChooser sc = new StructureChooser(selectedSeqs, seq, null); + ThreadwaitFor(500, sc); + sc.fetchStructuresMetaData(); Collection ss = (Collection) PA.getValue(sc, "discoveredStructuresSet"); @@ -199,6 +217,22 @@ public class StructureChooserTest assertTrue(ss.size() > 0); } + private void ThreadwaitFor(int i, StructureChooser sc) + { + long timeout = i+System.currentTimeMillis(); + while (!sc.isDialogVisible() && timeout > System.currentTimeMillis()) + { + try { + Thread.sleep(50); + } catch (InterruptedException x) + { + + } + } + + } + + @Test(groups = { "Functional" }) public void sanitizeSeqNameTest() {