JAL-3829 work in progress - look up additional metadata from PDBe for structures...
[jalview.git] / test / jalview / gui / structurechooser / StructureChooserQuerySourceTest.java
index b6b4615..f492ce6 100644 (file)
 package jalview.gui.structurechooser;
 
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
 import java.util.Vector;
 
+import org.junit.Assert;
 import org.testng.AssertJUnit;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeClass;
@@ -35,8 +39,11 @@ import jalview.datamodel.PDBEntry;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceI;
 import jalview.fts.core.FTSRestRequest;
+import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.pdb.PDBFTSRestClient;
 import jalview.fts.threedbeacons.TDBeaconsFTSRestClientTest;
 import jalview.gui.JvOptionPane;
+import jalview.jbgui.FilterOption;
 
 public class StructureChooserQuerySourceTest
 {
@@ -242,21 +249,31 @@ public class StructureChooserQuerySourceTest
   public void cascadingThreeDBandPDBQuerys()
   {
     TDBeaconsFTSRestClientTest.setMock();
-    
-    StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq});
+    PDBFTSRestClient.setMock();
+    ThreeDBStructureChooserQuerySource tdbquery = new ThreeDBStructureChooserQuerySource();
+    PDBStructureChooserQuerySource pdbquery  = new PDBStructureChooserQuerySource();
+            
 
-    // query TDB for doc
-    // query PDBe for PDB entry metadata
-    // Combine
     
-    FTSRestRequest tdbQuery = new FTSRestRequest();
-    tdbQuery.setResponseSize(100);
-    tdbQuery.setFieldToSearchBy("");
-    tdbQuery.setSearchTerm(scquery.buildQuery(upSeq));
-    tdbQuery.setWantedFields(scquery.getDocFieldPrefs().getStructureSummaryFields());
-    //scquery.fetchStructuresMetaData(upSeq, null, null, false);
-    String secondaryPdbQuery;
-    //secondaryPdbQuery = ((ThreeDBStructureChooserQuerySource)scquery).buildPDBFTSquery();
+    FTSRestResponse upResponse = null;
+    FTSRestResponse pdbResponse = null;
+    
+    try {
+      upResponse = tdbquery.fetchStructuresMetaData(upSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(),  null, false);
+      // NB Could have race condition here 
+      String pdb_Query = tdbquery.buildPDBFTSQueryFor(upResponse);
+      assertTrue(pdb_Query.trim().length()>0);
+      pdbResponse = tdbquery.fetchStructuresMetaDataFor(pdbquery, upResponse);
+      assertTrue(pdbResponse.getNumberOfItemsFound()>0);
+      FTSRestResponse joinedResp = tdbquery.joinResponses(upResponse, pdbResponse);
+      assertEquals(upResponse.getNumberOfItemsFound(),joinedResp.getNumberOfItemsFound());
+      
+    } catch (Exception x)
+    {
+      x.printStackTrace();
+      Assert.fail("Unexpected Exception");
+    }
+    StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq});
 
   }