X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FCrossRefTest.java;h=38fc59fad3f33107f8c8d7d0d771b8b9d229d7b6;hb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;hp=2ae4afc6670427ba61f76001a0e4f98a46ec4d19;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/test/jalview/analysis/CrossRefTest.java b/test/jalview/analysis/CrossRefTest.java index 2ae4afc..38fc59f 100644 --- a/test/jalview/analysis/CrossRefTest.java +++ b/test/jalview/analysis/CrossRefTest.java @@ -1,72 +1,66 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) + * Copyright (C) 2015 The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.analysis; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertSame; + import jalview.datamodel.DBRefEntry; -import jalview.datamodel.Sequence; -import jalview.datamodel.SequenceI; -import org.junit.Test; +import org.testng.annotations.Test; public class CrossRefTest { - - /** - * Tests for the method that checks if one sequence cross-references another - */ - @Test - public void testHasCrossRef() + @Test(groups = { "Functional" }) + public void testFindXDbRefs() { - assertFalse(CrossRef.hasCrossRef(null, null)); - SequenceI seq1 = new Sequence("EMBL|A12345", "ABCDEF"); - assertFalse(CrossRef.hasCrossRef(seq1, null)); - assertFalse(CrossRef.hasCrossRef(null, seq1)); - SequenceI seq2 = new Sequence("UNIPROT|V20192", "ABCDEF"); - assertFalse(CrossRef.hasCrossRef(seq1, seq2)); + DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "A123"); + DBRefEntry ref2 = new DBRefEntry("UNIPROTKB/TREMBL", "1", "A123"); + DBRefEntry ref3 = new DBRefEntry("pdb", "1", "A123"); + DBRefEntry ref4 = new DBRefEntry("EMBLCDSPROTEIN", "1", "A123"); + DBRefEntry ref5 = new DBRefEntry("embl", "1", "A123"); + DBRefEntry ref6 = new DBRefEntry("emblCDS", "1", "A123"); + DBRefEntry ref7 = new DBRefEntry("GeneDB", "1", "A123"); + DBRefEntry ref8 = new DBRefEntry("PFAM", "1", "A123"); + DBRefEntry[] refs = new DBRefEntry[] { ref1, ref2, ref3, ref4, ref5, + ref6, ref7, ref8 }; - // different ref - seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "v20193")); - assertFalse(CrossRef.hasCrossRef(seq1, seq2)); + /* + * Just the DNA refs: + */ + DBRefEntry[] found = CrossRef.findXDbRefs(false, refs); + assertEquals(3, found.length); + assertSame(ref5, found[0]); + assertSame(ref6, found[1]); + assertSame(ref7, found[2]); - // case-insensitive; version number is ignored - seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "v20192")); - assertTrue(CrossRef.hasCrossRef(seq1, seq2)); - - // right case! - seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192")); - assertTrue(CrossRef.hasCrossRef(seq1, seq2)); - // test is one-way only - assertFalse(CrossRef.hasCrossRef(seq2, seq1)); + /* + * Just the protein refs: + */ + found = CrossRef.findXDbRefs(true, refs); + assertEquals(4, found.length); + assertSame(ref1, found[0]); + assertSame(ref2, found[1]); + assertSame(ref3, found[2]); + assertSame(ref4, found[3]); } - /** - * Tests for the method that checks if either sequence cross-references the - * other - */ - @Test - public void testHaveCrossRef() - { - assertFalse(CrossRef.hasCrossRef(null, null)); - SequenceI seq1 = new Sequence("EMBL|A12345", "ABCDEF"); - assertFalse(CrossRef.haveCrossRef(seq1, null)); - assertFalse(CrossRef.haveCrossRef(null, seq1)); - SequenceI seq2 = new Sequence("UNIPROT|V20192", "ABCDEF"); - assertFalse(CrossRef.haveCrossRef(seq1, seq2)); - - seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192")); - assertTrue(CrossRef.haveCrossRef(seq1, seq2)); - // next is true for haveCrossRef, false for hasCrossRef - assertTrue(CrossRef.haveCrossRef(seq2, seq1)); - - // now the other way round - seq1.setDBRef(null); - seq2.addDBRef(new DBRefEntry("EMBL", "1", "A12345")); - assertTrue(CrossRef.haveCrossRef(seq1, seq2)); - assertTrue(CrossRef.haveCrossRef(seq2, seq1)); - - // now both ways - seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "V20192")); - assertTrue(CrossRef.haveCrossRef(seq1, seq2)); - assertTrue(CrossRef.haveCrossRef(seq2, seq1)); - } }