X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fdbsources%2FUniprotTest.java;h=176cddceb87f27e2161540535a9584d1ea5b3867;hb=5faac1104c41690e38e259fae5bb700236021360;hp=e835724c69f316239f40b194fa09aa34b09a1f63;hpb=4d64932654de3f6ffe07db11d18f2d21f558c6e6;p=jalview.git diff --git a/test/jalview/ws/dbsources/UniprotTest.java b/test/jalview/ws/dbsources/UniprotTest.java index e835724..176cddc 100644 --- a/test/jalview/ws/dbsources/UniprotTest.java +++ b/test/jalview/ws/dbsources/UniprotTest.java @@ -20,19 +20,12 @@ */ package jalview.ws.dbsources; +import static org.testng.Assert.assertFalse; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertTrue; -import jalview.datamodel.SequenceI; -import jalview.gui.JvOptionPane; -import jalview.xml.binding.uniprot.DbReferenceType; -import jalview.xml.binding.uniprot.Entry; -import jalview.xml.binding.uniprot.FeatureType; -import jalview.xml.binding.uniprot.LocationType; -import jalview.xml.binding.uniprot.PositionType; - import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; @@ -43,6 +36,17 @@ import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.DBRefSource; +import jalview.datamodel.SequenceI; +import jalview.gui.JvOptionPane; +import jalview.util.DBRefUtils; +import jalview.xml.binding.uniprot.DbReferenceType; +import jalview.xml.binding.uniprot.Entry; +import jalview.xml.binding.uniprot.FeatureType; +import jalview.xml.binding.uniprot.LocationType; +import jalview.xml.binding.uniprot.PositionType; + public class UniprotTest { @@ -58,8 +62,7 @@ public class UniprotTest + "" + "" + "A9CKP4" - + "A9CKP5" - + "A9CKP4_AGRT5" + + "A9CKP5" + "A9CKP4_AGRT5" + "A9CKP4_AGRT6" + "Mitogen-activated protein kinase 13" + "" @@ -153,31 +156,27 @@ public class UniprotTest sf = features.get(6); assertEquals("sequence variant", sf.getType()); - assertEquals("Foo", - sf.getDescription()); + assertEquals("Foo", sf.getDescription()); assertEquals(42, sf.getLocation().getPosition().getPosition().intValue()); assertNull(sf.getLocation().getBegin()); assertNull(sf.getLocation().getEnd()); - Assert.assertEquals(Uniprot.getDescription(sf), - "p.Met42Leu" + "
  " - + "p.Met42LeuMetVal Foo"); + Assert.assertEquals(Uniprot.getDescription(sf), "p.Met42Leu" + + "
  " + "p.Met42LeuMetVal Foo"); sf = features.get(7); assertNull(sf.getLocation().getPosition()); assertEquals(42, sf.getLocation().getBegin().getPosition().intValue()); assertEquals(43, sf.getLocation().getEnd().getPosition().intValue()); - Assert.assertEquals(Uniprot.getDescription(sf), - "p.MetLeu42LeuLeu" + "
  " - + "p.MetLeu42LeuMetVal Foo"); + Assert.assertEquals(Uniprot.getDescription(sf), "p.MetLeu42LeuLeu" + + "
  " + "p.MetLeu42LeuMetVal Foo"); sf = features.get(8); assertNull(sf.getLocation().getPosition()); assertEquals(42, sf.getLocation().getBegin().getPosition().intValue()); assertEquals(45, sf.getLocation().getEnd().getPosition().intValue()); - Assert.assertEquals(Uniprot.getDescription(sf), - "p.MLML42LeuLeu" + "
  " - + "p.MLML42LMVK Foo Too"); + Assert.assertEquals(Uniprot.getDescription(sf), "p.MLML42LeuLeu" + + "
  " + "p.MLML42LMVK Foo Too"); /* * Check cross-references @@ -211,12 +210,36 @@ public class UniprotTest public void testGetUniprotSequence() throws UnsupportedEncodingException { InputStream is = new ByteArrayInputStream(UNIPROT_XML.getBytes()); - Entry entry = new Uniprot().getUniprotEntries( - is).get(0); + Entry entry = new Uniprot().getUniprotEntries(is).get(0); SequenceI seq = new Uniprot().uniprotEntryToSequence(entry); assertNotNull(seq); - assertEquals(6, seq.getDBRefs().length); // 2*Uniprot, PDB, PDBsum, 2*EMBL - + assertEquals(6, seq.getDBRefs().size()); // 2*Uniprot, PDB, PDBsum, 2*EMBL + assertEquals(seq.getSequenceAsString(), + seq.createDatasetSequence().getSequenceAsString()); + assertEquals(2, seq.getPrimaryDBRefs().size()); + List res = DBRefUtils.searchRefs(seq.getPrimaryDBRefs(), + "A9CKP4"); + assertEquals(1, res.size()); + assertTrue(res.get(0).isCanonical()); + res = DBRefUtils.searchRefsForSource(seq.getDBRefs(), + DBRefSource.UNIPROT); + assertEquals(2, res.size()); + /* + * NB this test fragile - relies on ordering being preserved + */ + assertTrue(res.get(0).isCanonical()); + assertFalse(res.get(1).isCanonical()); + + // check version is preserved for EMBLCDS + res = DBRefUtils.searchRefs(seq.getDBRefs(), "AAK85932"); + assertEquals(1, res.size()); + // Ideally we would expect AAK85932.1 -> AAK85932 + // assertTrue("1".equals(res.get(0).getVersion())); + // but it also passes through DBrefUtils.ensurePrimaries which adds + // (promoted) to the version string + // FIXME: Jim needs to specify what (promoted) means !! - or perhaps we just + // ignore it ! + assertEquals("1 (promoted)", (res.get(0).getVersion())); } /** @@ -234,8 +257,7 @@ public class UniprotTest * name formatted with Uniprot Entry name */ String expectedName = "A9CKP4_AGRT5|A9CKP4_AGRT6"; - assertEquals(expectedName, - Uniprot.getUniprotEntryId(entry)); + assertEquals(expectedName, Uniprot.getUniprotEntryId(entry)); } /**