This is an automated email from the ASF dual-hosted git repository. mmiklavcic pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/metron.git
The following commit(s) were added to refs/heads/master by this push: new 0239432 METRON-2202 Add parameter validation for the stellar field validation functions (MohanDV via mmiklavc) closes apache/metron#1476 0239432 is described below commit 0239432b967bc176d20d6965544be582f54ae0e9 Author: MohanDV <mohan...@gmail.com> AuthorDate: Mon Aug 5 08:48:57 2019 -0600 METRON-2202 Add parameter validation for the stellar field validation functions (MohanDV via mmiklavc) closes apache/metron#1476 --- .../apache/metron/common/field/validation/SimpleValidation.java | 3 +++ .../common/field/validation/network/DomainValidationTest.java | 8 ++++++++ .../common/field/validation/network/EmailValidationTest.java | 6 ++++++ .../metron/common/field/validation/network/URLValidationTest.java | 8 ++++++-- .../common/field/validation/primitive/IntegerValidationTest.java | 6 ++++++ 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/SimpleValidation.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/SimpleValidation.java index 3a0b4f8..2909df3 100644 --- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/SimpleValidation.java +++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/field/validation/SimpleValidation.java @@ -52,6 +52,9 @@ public abstract class SimpleValidation implements FieldValidation, Predicate<Lis @Override public boolean test(List<Object> input) { + if(input.isEmpty()) { + return false; + } Predicate<Object> predicate = getPredicate(); for(Object o : input) { if(o == null || !predicate.test(o)){ diff --git a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/DomainValidationTest.java b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/DomainValidationTest.java index ee57efa..5277c3f 100644 --- a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/DomainValidationTest.java +++ b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/DomainValidationTest.java @@ -25,6 +25,7 @@ import org.junit.Assert; import org.junit.Test; import java.io.IOException; +import java.util.Collections; import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate; @@ -64,6 +65,13 @@ public class DomainValidationTest extends BaseValidationTest{ Assert.assertTrue(execute(validWithSingleField, ImmutableMap.of("field1", "www.hotmail.co.uk"))); Assert.assertTrue(runPredicate(validWithSingleField_MQL, ImmutableMap.of("field1", "www.hotmail.co.uk"))); } + + @Test + public void negativeTest_empty() throws IOException { + Assert.assertFalse(runPredicate("IS_DOMAIN()", Collections.emptyMap())); + Assert.assertFalse(runPredicate("IS_DOMAIN('')", Collections.emptyMap())); + } + @Test public void negativeTest_single() throws IOException { Assert.assertFalse(execute(validWithSingleField, ImmutableMap.of("field1", "foo"))); diff --git a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/EmailValidationTest.java b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/EmailValidationTest.java index e45c467..6360ac1 100644 --- a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/EmailValidationTest.java +++ b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/EmailValidationTest.java @@ -25,6 +25,7 @@ import org.junit.Assert; import org.junit.Test; import java.io.IOException; +import java.util.Collections; import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate; @@ -76,6 +77,11 @@ public class EmailValidationTest extends BaseValidationTest { Assert.assertFalse(runPredicate(validWithSingleField_MQL, ImmutableMap.of("field1", 2.7f))); } @Test + public void negativeTest_empty() throws IOException { + Assert.assertFalse(runPredicate("IS_EMAIL()", Collections.emptyMap())); + Assert.assertFalse(runPredicate("IS_EMAIL('')", Collections.emptyMap())); + } + @Test public void positiveTest_multiple() throws IOException { Assert.assertTrue(execute(validWithMultipleFields, ImmutableMap.of("field1", "m...@www.gmail.com", "field2", "m...@www.hotmail.com"))); Assert.assertTrue(runPredicate(validWithMultipleFields_MQL, ImmutableMap.of("field1", "m...@www.gmail.com", "field2", "m...@www.hotmail.com"))); diff --git a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/URLValidationTest.java b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/URLValidationTest.java index 1099df7..6a4ec38 100644 --- a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/URLValidationTest.java +++ b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/network/URLValidationTest.java @@ -25,6 +25,7 @@ import org.junit.Assert; import org.junit.Test; import java.io.IOException; +import java.util.Collections; import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate; @@ -64,8 +65,11 @@ public class URLValidationTest extends BaseValidationTest { Assert.assertTrue(execute(validWithSingleField, ImmutableMap.of("field1", "https://www.hotmail.co.uk"))); Assert.assertTrue(runPredicate(validWithSingleField_MQL, ImmutableMap.of("field1", "https://www.hotmail.co.uk"))); } - - + @Test + public void negativeTest_empty() throws IOException { + Assert.assertFalse(runPredicate("IS_URL()", Collections.emptyMap())); + Assert.assertFalse(runPredicate("IS_URL('')", Collections.emptyMap())); + } @Test public void negativeTest_single() throws IOException { Assert.assertFalse(execute(validWithSingleField, ImmutableMap.of("field1", "foo"))); diff --git a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/primitive/IntegerValidationTest.java b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/primitive/IntegerValidationTest.java index bfd309d..a6e717d 100644 --- a/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/primitive/IntegerValidationTest.java +++ b/metron-platform/metron-common/src/test/java/org/apache/metron/common/field/validation/primitive/IntegerValidationTest.java @@ -25,6 +25,7 @@ import org.junit.Assert; import org.junit.Test; import java.io.IOException; +import java.util.Collections; import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate; @@ -65,6 +66,11 @@ public class IntegerValidationTest extends BaseValidationTest{ Assert.assertTrue(runPredicate(validWithSingleField_MQL, ImmutableMap.of("field1", "1"))); } @Test + public void negativeTest_empty() throws IOException { + Assert.assertFalse(runPredicate("IS_INTEGER()", Collections.emptyMap())); + Assert.assertFalse(runPredicate("IS_INTEGER('')", Collections.emptyMap())); + } + @Test public void negativeTest_single() throws IOException { Assert.assertFalse(execute(validWithSingleField, ImmutableMap.of("field1", "foo"))); Assert.assertFalse(runPredicate(validWithSingleField_MQL, ImmutableMap.of("field1", "foo")));