X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2Ffeatures%2FFeatureAttributesTest.java;fp=test%2Fjalview%2Fdatamodel%2Ffeatures%2FFeatureAttributesTest.java;h=ff4cd53dd11ea5a9444a6c12849fefce74bd3952;hb=14f4c01bd0ff74a237cec40aad04f3f81efc5afb;hp=0846ec26814e1a875f819773cadc9fb3e3924d27;hpb=f08fac41090bed842625493c9fa919ee14de865a;p=jalview.git diff --git a/test/jalview/datamodel/features/FeatureAttributesTest.java b/test/jalview/datamodel/features/FeatureAttributesTest.java index 0846ec2..ff4cd53 100644 --- a/test/jalview/datamodel/features/FeatureAttributesTest.java +++ b/test/jalview/datamodel/features/FeatureAttributesTest.java @@ -1,6 +1,7 @@ package jalview.datamodel.features; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; @@ -9,7 +10,9 @@ import jalview.datamodel.features.FeatureAttributes.Datatype; import java.util.Comparator; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; @@ -130,4 +133,32 @@ public class FeatureAttributesTest assertEquals(fa.getDatatype("Pfam", "domain"), Datatype.Character); assertEquals(fa.getDatatype("Pfam", "phase"), Datatype.Mixed); } + + @Test(groups = "Functional") + public void testGetFieldMatchers() + { + // providing a junk property key to ensure the default is used + List matchers = FeatureAttributes.getFieldMatchers("^%!", + ".*,ABC?,CLIN_SIG,CSQ:P.*"); + assertEquals(matchers.size(), 4); + + // first pattern .* matches anything + assertTrue(matchers.get(0).matcher("xyz").matches()); + + // second ABC? matches AB or ABC, not case-sensitive + assertTrue(matchers.get(1).matcher("ABC").matches()); + assertTrue(matchers.get(1).matcher("abc").matches()); + assertFalse(matchers.get(1).matcher("abc2").matches()); + assertFalse(matchers.get(1).matcher("xab").matches()); + assertFalse(matchers.get(1).matcher("xabc").matches()); + + // third matches CLIN_SIG + assertTrue(matchers.get(2).matcher("CLIN_SIG").matches()); + assertTrue(matchers.get(2).matcher("clin_sig").matches()); + + // fourth matches CSQ:P followed by any characters (or none) + assertTrue(matchers.get(3).matcher("CSQ:P").matches()); + assertTrue(matchers.get(3).matcher("csq:peter").matches()); + assertFalse(matchers.get(3).matcher("CSQ:Blue Peter").matches()); + } }