JAL-2069 update spike branch with latest
[jalview.git] / test / jalview / util / matcher / KeyedMatcherSetTest.java
index 0d2767d..3018cb6 100644 (file)
@@ -2,8 +2,10 @@ package jalview.util.matcher;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
+import java.util.Iterator;
 import java.util.function.Function;
 
 import org.testng.annotations.Test;
@@ -66,7 +68,7 @@ public class KeyedMatcherSetTest
     assertEquals(km1.toString(), "AF < 1.2");
 
     KeyedMatcher km2 = new KeyedMatcher("CLIN_SIG", Condition.NotContains, "path");
-    assertEquals(km2.toString(), "CLIN_SIG Does not contain PATH");
+    assertEquals(km2.toString(), "CLIN_SIG Does not contain 'PATH'");
 
     /*
      * AND them
@@ -77,7 +79,7 @@ public class KeyedMatcherSetTest
     assertEquals(kms.toString(), "(AF < 1.2)");
     kms.and(km2);
     assertEquals(kms.toString(),
-            "(AF < 1.2) AND (CLIN_SIG Does not contain PATH)");
+            "(AF < 1.2) AND (CLIN_SIG Does not contain 'PATH')");
 
     /*
      * OR them
@@ -88,7 +90,7 @@ public class KeyedMatcherSetTest
     assertEquals(kms.toString(), "(AF < 1.2)");
     kms.or(km2);
     assertEquals(kms.toString(),
-            "(AF < 1.2) OR (CLIN_SIG Does not contain PATH)");
+            "(AF < 1.2) OR (CLIN_SIG Does not contain 'PATH')");
   }
 
   @Test
@@ -121,4 +123,35 @@ public class KeyedMatcherSetTest
     kms.and(km);
     assertFalse(kms.isEmpty());
   }
+
+  @Test
+  public void testGetMatchers()
+  {
+    KeyedMatcherSetI kms = new KeyedMatcherSet();
+
+    /*
+     * empty iterable:
+     */
+    Iterator<KeyedMatcherI> iterator = kms.getMatchers().iterator();
+    assertFalse(iterator.hasNext());
+
+    /*
+     * one matcher:
+     */
+    KeyedMatcherI km1 = new KeyedMatcher("AF", Condition.GE, -2F);
+    kms.and(km1);
+    iterator = kms.getMatchers().iterator();
+    assertSame(km1, iterator.next());
+    assertFalse(iterator.hasNext());
+
+    /*
+     * two matchers:
+     */
+    KeyedMatcherI km2 = new KeyedMatcher("AF", Condition.LT, 8F);
+    kms.and(km2);
+    iterator = kms.getMatchers().iterator();
+    assertSame(km1, iterator.next());
+    assertSame(km2, iterator.next());
+    assertFalse(iterator.hasNext());
+  }
 }