JAL-4090 JAL-1551 spotlessApply
[jalview.git] / test / jalview / ws / SequenceFetcherTest.java
index 0b501ee..c643d6b 100644 (file)
@@ -30,10 +30,14 @@ import jalview.ws.seqfetcher.ASequenceFetcher;
 import jalview.ws.seqfetcher.DbSourceProxy;
 
 import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 
+import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
 public class SequenceFetcherTest
 {
@@ -45,10 +49,36 @@ public class SequenceFetcherTest
     JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
   }
 
+  @Test(groups = "Functional")
+  public void testNoDuplicatesInFetchDbRefs()
+  {
+    Map<String, List<DbSourceProxy>> seen = new HashMap<>();
+    jalview.ws.SequenceFetcher sfetcher = new jalview.ws.SequenceFetcher();
+    String dupes = "";
+    // for (String src : sfetcher.getOrderedSupportedSources())
+    for (String src : sfetcher.getNonAlignmentSources())
+    {
+      List<DbSourceProxy> seenitem = seen.get(src);
+      if (seenitem != null)
+      {
+        dupes += (dupes.length() > 0 ? "," : "") + src;
+      }
+      else
+      {
+        seen.put(src, sfetcher.getSourceProxy(src));
+      }
+    }
+    if (dupes.length() > 0)
+    {
+      Assert.fail("Duplicate sources : " + dupes);
+    }
+  }
+
   /**
    * simple run method to test dbsources.
    * 
    * @param argv
+   * @j2sIgnore
    */
   public static void main(String[] argv)
   {
@@ -146,23 +176,24 @@ public class SequenceFetcherTest
               System.out.println("Type: " + source);
               SequenceI[] prod = crossRef.findXrefSequences(source, dna)
                       .getSequencesArray();
-              System.out.println("Found "
-                      + ((prod == null) ? "no" : "" + prod.length)
-                      + " products");
+              System.out.println(
+                      "Found " + ((prod == null) ? "no" : "" + prod.length)
+                              + " products");
               if (prod != null)
               {
                 for (int p = 0; p < prod.length; p++)
                 {
-                  System.out.println("Prod " + p + ": "
-                          + prod[p].getDisplayId(true));
+                  System.out.println(
+                          "Prod " + p + ": " + prod[p].getDisplayId(true));
                 }
               }
             }
           }
           else
           {
-            noProds.addElement((dna ? new Object[] { al, al }
-                    : new Object[] { al }));
+            noProds.addElement(
+                    (dna ? new Object[]
+                    { al, al } : new Object[] { al }));
           }
 
         }
@@ -236,8 +267,8 @@ public class SequenceFetcherTest
           // present)
           for (int p = 0; p < prod.length; p++)
           {
-            System.out.println("Prod " + p + ": "
-                    + prod[p].getDisplayId(true));
+            System.out.println(
+                    "Prod " + p + ": " + prod[p].getDisplayId(true));
           }
         }
       }