X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fdbsources%2FUniprotTest.java;h=060c3032f2abf456765a2d516c359c59843773c8;hb=2a86b2b3d7b5e8ad3f23d7895637cbfb24685fac;hp=b70e5811642536bff2d2084e9e8dafa734609d12;hpb=0cddb5c5bf43803985172d28a09597563ec4ae7b;p=jalview.git diff --git a/test/jalview/ws/dbsources/UniprotTest.java b/test/jalview/ws/dbsources/UniprotTest.java index b70e581..060c303 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; @@ -67,6 +68,8 @@ public class UniprotTest + "ML" + "M" + "LLMVM" + + "LLLMVML" + + "LLLMVKMLML" + "MHAPL VSKDL" + ""; @@ -102,7 +105,7 @@ public class UniprotTest * Check sequence features */ Vector features = entry.getFeature(); - assertEquals(7, features.size()); + assertEquals(9, features.size()); UniprotFeature sf = features.get(0); assertEquals("signal peptide", sf.getType()); assertNull(sf.getDescription()); @@ -124,33 +127,50 @@ public class UniprotTest sf = features.get(3); assertEquals("sequence variant", sf.getType()); - assertEquals("Variation: 'L' Original: 'M'", sf.getDescription()); + 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 Variation: 'L' Original: 'M'", - sf.getDescription()); + 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 Original: 'M'", sf.getDescription()); + 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 Variation: 'L', Variation: 'LMV' Original: 'M'", + 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 */ @@ -219,4 +239,53 @@ 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 single letter code + 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)); + } }