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")));