package jalview.analysis; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import jalview.datamodel.DBRefEntry; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import org.junit.Test; public class CrossRefTest { /** * Tests for the method that checks if one sequence cross-references another */ @Test public void testHasCrossRef() { 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)); // different ref seq1.addDBRef(new DBRefEntry("UNIPROT", "1", "v20193")); assertFalse(CrossRef.hasCrossRef(seq1, seq2)); // 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)); } /** * 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)); } }