JAL-1894 update year/version in copyright
[jalview.git] / test / jalview / analysis / CrossRefTest.java
index 2ae4afc..38fc59f 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
+ * 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));
-  }
 }