X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fgui%2Fstructurechooser%2FStructureChooserQuerySourceTest.java;h=36d7d0a3860a2b889959fca53b55422d166a0f74;hb=817226e1c7264066e1d435faba8d41f108c5628b;hp=b6b4615cf4d1e05b0014acefc430b33b63da7944;hpb=1782673a61778d3aec570fbfc291ab21f99af7a3;p=jalview.git diff --git a/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java b/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java index b6b4615..36d7d0a 100644 --- a/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java +++ b/test/jalview/gui/structurechooser/StructureChooserQuerySourceTest.java @@ -21,8 +21,14 @@ package jalview.gui.structurechooser; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +import java.util.Collection; +import java.util.List; import java.util.Vector; +import org.junit.Assert; import org.testng.AssertJUnit; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; @@ -34,9 +40,14 @@ import jalview.datamodel.DBRefSource; import jalview.datamodel.PDBEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; +import jalview.fts.api.FTSData; 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.gui.StructureChooser; +import jalview.jbgui.FilterOption; public class StructureChooserQuerySourceTest { @@ -166,7 +177,9 @@ public class StructureChooserQuerySourceTest { System.out.println("seq >>>> " + upSeq); TDBeaconsFTSRestClientTest.setMock(); + PDBFTSRestClient.setMock(); StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { upSeq}); + // gets the lightweight proxy rather than the ThreeDBStructureChooserQuerySource AssertJUnit.assertTrue(scquery instanceof ThreeDBStructureChooserQuerySource); String query = scquery.buildQuery(upSeq); AssertJUnit.assertEquals("P38398", query); @@ -242,21 +255,49 @@ 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; + // TODO test available options + // Best coverage + // Best Alphafold Model + // Best model (by confidence score) + // Will also need to develop a more sophisticated filtering system + List opts = tdbquery.getAvailableFilterOptions(StructureChooser.VIEWS_FILTER); + FilterOption opt_singlebest = opts.get(0); + FilterOption opt_manybest = opts.get(1); + assertEquals(opt_singlebest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE); + assertEquals(opt_manybest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_TDBEACONS_COVERAGE); + + try { + upResponse = tdbquery.fetchStructuresMetaData(upSeq, 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); + assertEquals(firstRanked.getNumberOfItemsFound(),1); + // many best response + upResponse = tdbquery.fetchStructuresMetaData(upSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_manybest, false); + assertTrue(firstRanked.getNumberOfItemsFound()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}); }