JAL-3829 allow multiple URL mocks and include P01308 in 3d-beacons mocks
[jalview.git] / test / jalview / gui / structurechooser / StructureChooserQuerySourceTest.java
index 36d7d0a..0254a77 100644 (file)
@@ -33,6 +33,7 @@ import org.testng.AssertJUnit;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
 import jalview.datamodel.DBRefEntry;
@@ -59,7 +60,7 @@ public class StructureChooserQuerySourceTest
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
   }
 
-  Sequence seq,upSeq;
+  Sequence seq,upSeq,upSeq_insulin;
 
   // same set up as for structurechooser test
   
@@ -117,6 +118,13 @@ public class StructureChooserQuerySourceTest
     upSeq.createDatasetSequence();
     upSeq.setDescription("Breast cancer type 1 susceptibility protein");
     upSeq.addDBRef(new DBRefEntry("UNIPROT","0","P38398",null,true));
+    
+    upSeq_insulin=new Sequence("INS_HUMAN",
+            "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGP"
+            + "GAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN");
+    upSeq_insulin.createDatasetSequence();
+    upSeq_insulin.setDescription("Insulin");
+    upSeq_insulin.addDBRef(new DBRefEntry("UNIPROT","0","P01308",null,true));
   }
 
 @AfterMethod(alwaysRun = true)
@@ -251,8 +259,8 @@ public class StructureChooserQuerySourceTest
 //            "uniprot_accession:P12345 OR uniprot_id:P12345 OR pdb_id:1xyz",
 //            query);
   }
-  @Test(groups= {"Functional"})
-  public void cascadingThreeDBandPDBQuerys()
+  @Test(groups= {"Functional"},dataProvider = "testUpSeqs")
+  public void cascadingThreeDBandPDBQuerys(SequenceI testUpSeq)
   {
     TDBeaconsFTSRestClientTest.setMock();
     PDBFTSRestClient.setMock();
@@ -275,14 +283,14 @@ public class StructureChooserQuerySourceTest
     assertEquals(opt_manybest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_TDBEACONS_COVERAGE);
     
     try {
-      upResponse = tdbquery.fetchStructuresMetaData(upSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(),  opt_singlebest, false);
+      upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(),  opt_singlebest, false);
       tdbquery.updateAvailableFilterOptions(StructureChooser.VIEWS_FILTER,opts,upResponse.getSearchSummary());
       // test ranking without additional PDBe data
-      FTSRestResponse firstRanked = tdbquery.selectFirstRankedQuery(upSeq, upResponse.getSearchSummary(), tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest.getValue(), false);
+      FTSRestResponse firstRanked = tdbquery.selectFirstRankedQuery(testUpSeq, upResponse.getSearchSummary(), tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest.getValue(), false);
       assertEquals(firstRanked.getNumberOfItemsFound(),1);
       // many best response
-      upResponse = tdbquery.fetchStructuresMetaData(upSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(),  opt_manybest, false);
-      assertTrue(firstRanked.getNumberOfItemsFound()<upResponse.getNumberOfItemsFound());
+      upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(),  opt_manybest, false);
+      assertTrue(firstRanked.getSearchSummary().size()<upResponse.getSearchSummary().size());
       // NB Could have race condition here 
       String pdb_Query = tdbquery.buildPDBFTSQueryFor(upResponse);
       assertTrue(pdb_Query.trim().length()>0);
@@ -297,10 +305,17 @@ public class StructureChooserQuerySourceTest
       x.printStackTrace();
       Assert.fail("Unexpected Exception");
     }
-    StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq});
+    StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { testUpSeq});
 
   }
   
+  @DataProvider(name = "testUpSeqs")
+  public Object[][] testUpSeqs() throws Exception
+  {
+    setUp();
+    return new Object[][] { {upSeq},{upSeq_insulin}};
+  }
+  
   @Test(groups = { "Functional" })
   public void sanitizeSeqNameTest()
   {