X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fdbsources%2FUniprotTest.java;h=e92702393e77ab94f5c922ea2379457677642194;hb=743af46c3c50e67706009be4360fa504bfcd4fdc;hp=2d4be719173e0d9b1822a4e0efad3565401b8975;hpb=e957648a02a9e25795a92a4f39a5e3c1e7adb230;p=jalview.git diff --git a/test/jalview/ws/dbsources/UniprotTest.java b/test/jalview/ws/dbsources/UniprotTest.java index 2d4be71..e927023 100644 --- a/test/jalview/ws/dbsources/UniprotTest.java +++ b/test/jalview/ws/dbsources/UniprotTest.java @@ -35,6 +35,7 @@ import java.io.Reader; import java.io.StringReader; import java.util.Vector; +import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -63,6 +64,12 @@ public class UniprotTest + "" + "" + "" + + "ML" + + "ML" + + "M" + + "LLMVM" + + "LLLMVML" + + "LLLMVKMLML" + "MHAPL VSKDL" + ""; @@ -98,7 +105,7 @@ public class UniprotTest * Check sequence features */ Vector features = entry.getFeature(); - assertEquals(3, features.size()); + assertEquals(9, features.size()); UniprotFeature sf = features.get(0); assertEquals("signal peptide", sf.getType()); assertNull(sf.getDescription()); @@ -118,6 +125,52 @@ public class UniprotTest assertEquals(21, sf.getBegin()); assertEquals(247, sf.getEnd()); + sf = features.get(3); + assertEquals("sequence variant", sf.getType()); + assertNull(sf.getDescription()); + assertEquals(41, sf.getPosition()); + assertEquals(41, sf.getBegin()); + assertEquals(41, sf.getEnd()); + + sf = features.get(4); + assertEquals("sequence variant", sf.getType()); + assertEquals("Pathogenic", sf.getDescription()); + assertEquals(41, sf.getPosition()); + assertEquals(41, sf.getBegin()); + assertEquals(41, sf.getEnd()); + + sf = features.get(5); + assertEquals("sequence variant", sf.getType()); + assertEquals("Pathogenic", sf.getDescription()); + assertEquals(41, sf.getPosition()); + assertEquals(41, sf.getBegin()); + assertEquals(41, sf.getEnd()); + + sf = features.get(6); + assertEquals("sequence variant", sf.getType()); + assertEquals("Foo", + sf.getDescription()); + assertEquals(42, sf.getPosition()); + assertEquals(42, sf.getBegin()); + assertEquals(42, sf.getEnd()); + Assert.assertEquals(Uniprot.getDescription(sf), + "p.Met42Leu" + "
  " + + "p.Met42LeuMetVal Foo"); + + sf = features.get(7); + assertEquals(42, sf.getBegin()); + assertEquals(43, sf.getEnd()); + Assert.assertEquals(Uniprot.getDescription(sf), + "p.MetLeu42LeuLeu" + "
  " + + "p.MetLeu42LeuMetVal Foo"); + + sf = features.get(8); + assertEquals(42, sf.getBegin()); + assertEquals(45, sf.getEnd()); + Assert.assertEquals(Uniprot.getDescription(sf), + "p.MLML42LeuLeu" + "
  " + + "p.MLML42LMVK Foo Too"); + /* * Check cross-references */ @@ -163,11 +216,11 @@ public class UniprotTest new StringReader(UNIPROT_XML)).get(0); /* - * name formatted as source | accession ids | names - * source database converted to Jalview canonical name + * name formatted with Uniprot Entry name */ - String expectedName = "UNIPROT|A9CKP4|A9CKP5|A9CKP4_AGRT5|A9CKP4_AGRT6"; - assertEquals(expectedName, Uniprot.getUniprotEntryId(entry)); + String expectedName = "A9CKP4_AGRT5|A9CKP4_AGRT6"; + assertEquals(expectedName, + Uniprot.getUniprotEntryId(entry)); } /** @@ -186,4 +239,55 @@ public class UniprotTest assertEquals(expectedDescription, Uniprot.getUniprotEntryDescription(entry)); } + + @Test(groups = { "Functional" }) + public void testGetDescription() + { + UniprotFeature uf = new UniprotFeature(); + assertEquals("", Uniprot.getDescription(uf)); + + uf.setDescription("Hello"); + assertEquals("Hello", Uniprot.getDescription(uf)); + + uf.setPosition(23); + uf.setOriginal("K"); + Vector vars = new Vector<>(); + vars.add("y"); + uf.setVariation(vars); + assertEquals("p.Lys23Tyr Hello", Uniprot.getDescription(uf)); + + // multiple variants generate an html description over more than one line + vars.add("W"); + assertEquals("p.Lys23Tyr
  p.Lys23Trp Hello", + Uniprot.getDescription(uf)); + + /* + * indel cases + * up to 3 bases (original or variant) are shown using 3 letter code + */ + vars.clear(); + vars.add("KWE"); + uf.setOriginal("KLS"); + assertEquals( + "p.LysLeuSer23LysTrpGlu Hello", + Uniprot.getDescription(uf)); + + // adding a fourth original base switches to single letter code + uf.setOriginal("KLST"); + assertEquals("p.KLST23LysTrpGlu Hello", + Uniprot.getDescription(uf)); + + // adding a fourth variant switches to a condensed representation + vars.clear(); + vars.add("KWES"); + assertEquals("p.KLST23KWES Hello", Uniprot.getDescription(uf)); + + vars.clear(); + vars.add("z"); // unknown variant - fails gracefully + uf.setOriginal("K"); + assertEquals("p.Lys23z Hello", Uniprot.getDescription(uf)); + + uf.setVariation(null); // variant missing - is ignored + assertEquals("Hello", Uniprot.getDescription(uf)); + } }