diff --git a/src/main/java/de/telekom/jsonfilter/exception/NoSingleValueException.java b/src/main/java/de/telekom/jsonfilter/exception/NoSingleValueException.java new file mode 100644 index 0000000..2e861a1 --- /dev/null +++ b/src/main/java/de/telekom/jsonfilter/exception/NoSingleValueException.java @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2024 Deutsche Telekom AG +// +// SPDX-License-Identifier: Apache-2.0 + +package de.telekom.jsonfilter.exception; + +public class NoSingleValueException extends Exception { + + public NoSingleValueException(String jsonPath, int numberOfActualResults) { + super("The evaluation of \"" + jsonPath + "\" did not return a single value. Expected 1 value, got " + numberOfActualResults + "."); + } +} diff --git a/src/main/java/de/telekom/jsonfilter/exception/TooManyValueExeption.java b/src/main/java/de/telekom/jsonfilter/exception/TooManyValueExeption.java deleted file mode 100644 index 51e852f..0000000 --- a/src/main/java/de/telekom/jsonfilter/exception/TooManyValueExeption.java +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Deutsche Telekom AG -// -// SPDX-License-Identifier: Apache-2.0 - -package de.telekom.jsonfilter.exception; - -public class TooManyValueExeption extends Exception { - - public TooManyValueExeption(String jsonPath, int numberOfActualValues) { - super("The evaluation of \"" + jsonPath + "\" contained too many values. Expected 1, got " + numberOfActualValues + "."); - } -} diff --git a/src/main/java/de/telekom/jsonfilter/operator/comparison/ComparisonOperator.java b/src/main/java/de/telekom/jsonfilter/operator/comparison/ComparisonOperator.java index 58113f0..f63b5c2 100644 --- a/src/main/java/de/telekom/jsonfilter/operator/comparison/ComparisonOperator.java +++ b/src/main/java/de/telekom/jsonfilter/operator/comparison/ComparisonOperator.java @@ -7,7 +7,7 @@ import com.jayway.jsonpath.InvalidPathException; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.internal.path.PathCompiler; -import de.telekom.jsonfilter.exception.TooManyValueExeption; +import de.telekom.jsonfilter.exception.NoSingleValueException; import de.telekom.jsonfilter.operator.EvaluationResult; import de.telekom.jsonfilter.operator.Operator; import de.telekom.jsonfilter.operator.ValidationResult; @@ -54,12 +54,12 @@ public EvaluationResult evaluate(String json) { abstract EvaluationResult compare(String json, String jsonPath, T expectedValue); - protected Comparable getActualValue(String json, String jsonPath) throws TooManyValueExeption { + protected Comparable getActualValue(String json, String jsonPath) throws NoSingleValueException { var valueList = getActualValues(json, jsonPath); if (valueList.size() == 1) { return valueList.getFirst(); } else { - throw new TooManyValueExeption(jsonPath, valueList.size()); + throw new NoSingleValueException(jsonPath, valueList.size()); } } diff --git a/src/main/java/de/telekom/jsonfilter/operator/comparison/EqualsOperator.java b/src/main/java/de/telekom/jsonfilter/operator/comparison/EqualsOperator.java index efff99e..8a335e0 100644 --- a/src/main/java/de/telekom/jsonfilter/operator/comparison/EqualsOperator.java +++ b/src/main/java/de/telekom/jsonfilter/operator/comparison/EqualsOperator.java @@ -6,6 +6,7 @@ import de.telekom.jsonfilter.operator.EvaluationResult; + public class EqualsOperator extends ComparisonOperator { public EqualsOperator(String jsonPath, T expectedValue) { diff --git a/src/test/java/de/telekom/jsonfilter/operator/OperatorTest.java b/src/test/java/de/telekom/jsonfilter/operator/OperatorTest.java index 7dd93e8..d1a6547 100644 --- a/src/test/java/de/telekom/jsonfilter/operator/OperatorTest.java +++ b/src/test/java/de/telekom/jsonfilter/operator/OperatorTest.java @@ -93,6 +93,6 @@ void tooManyActualValuesShouldReturnError() throws URISyntaxException, IOExcepti EvaluationResult result = operator.evaluate(payload.toString()); assertFalse(result.isMatch()); - assertEquals("An exception occurred during the evaluation: \nThe evaluation of \"$..type\" contained too many values. Expected 1, got 2.", result.getCauseDescription()); + assertEquals("An exception occurred during the evaluation: \nThe evaluation of \"$..type\" did not return a single value. Expected 1 value, got 2.", result.getCauseDescription()); } } \ No newline at end of file