You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by mm...@apache.org on 2019/08/05 14:49:28 UTC

[metron] branch master updated: METRON-2202 Add parameter validation for the stellar field validation functions (MohanDV via mmiklavc) closes apache/metron#1476

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 <mo...@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", "me@www.gmail.com", "field2", "me@www.hotmail.com")));
     Assert.assertTrue(runPredicate(validWithMultipleFields_MQL, ImmutableMap.of("field1", "me@www.gmail.com", "field2", "me@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")));