METRON-2202 Add parameter validation for the stellar field validation functions (MohanDV via mmiklavc) closes apache/metron#1476
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 @@
 
   @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.Test;
 
 import java.io.IOException;
+import java.util.Collections;
 
 import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate;
 
@@ -64,6 +65,13 @@
     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.Test;
 
 import java.io.IOException;
+import java.util.Collections;
 
 import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate;
 
@@ -76,6 +77,11 @@
     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.Test;
 
 import java.io.IOException;
+import java.util.Collections;
 
 import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate;
 
@@ -64,8 +65,11 @@
     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.Test;
 
 import java.io.IOException;
+import java.util.Collections;
 
 import static org.apache.metron.stellar.common.utils.StellarProcessorUtils.runPredicate;
 
@@ -65,6 +66,11 @@
     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")));