You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/11/20 14:49:35 UTC
olingo-odata4 git commit: [OLINGO-568] Added tests and exception
messages
Repository: olingo-odata4
Updated Branches:
refs/heads/master 16a856eae -> 69ef9f519
[OLINGO-568] Added tests and exception messages
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/69ef9f51
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/69ef9f51
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/69ef9f51
Branch: refs/heads/master
Commit: 69ef9f5194e0334f5a8378b8e25247ebdc16f794
Parents: 16a856e
Author: mibo <mi...@apache.org>
Authored: Fri Nov 20 14:43:24 2015 +0100
Committer: mibo <mi...@apache.org>
Committed: Fri Nov 20 14:45:40 2015 +0100
----------------------------------------------------------------------
.../core/uri/parser/search/SearchParser.java | 40 ++++++++++-------
.../parser/search/SearchParserException.java | 10 ++++-
.../core/uri/parser/search/SearchTokenizer.java | 30 ++++++++-----
.../parser/search/SearchTokenizerException.java | 8 ++--
.../server-core-exceptions-i18n.properties | 9 ++++
.../search/SearchParserAndTokenizerTest.java | 29 +++++++++---
.../uri/parser/search/SearchParserTest.java | 11 ++++-
.../uri/parser/search/SearchTokenizerTest.java | 47 ++++++++++++--------
8 files changed, 127 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParser.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParser.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParser.java
index 3e16444..4d93f73 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParser.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParser.java
@@ -54,7 +54,12 @@ public class SearchParser {
if (token == null) {
throw new SearchParserException("No search String", SearchParserException.MessageKeys.NO_EXPRESSION_FOUND);
}
- return processSearchExpression(null);
+ SearchExpression se = processSearchExpression(null);
+ if(!isEof()) {
+ throw new SearchParserException("Token left after end of search query parsing.",
+ SearchParserException.MessageKeys.INVALID_END_OF_QUERY_TOKEN_LEFT, token.getToken().name());
+ }
+ return se;
}
private SearchExpression processSearchExpression(SearchExpression left) throws SearchParserException {
@@ -71,16 +76,15 @@ public class SearchParser {
if (isToken(SearchQueryToken.Token.OPEN)) {
processOpen();
expression = processSearchExpression(left);
- validateToken(SearchQueryToken.Token.CLOSE);
+ if (expression == null) {
+ throw new SearchParserException("Brackets must contain an expression.",
+ SearchParserException.MessageKeys.NO_EXPRESSION_FOUND);
+ }
processClose();
} else if (isTerm()) {
expression = processTerm();
}
- if (expression == null) {
- throw new SearchParserException("Brackets must contain an expression.",
- SearchParserException.MessageKeys.NO_EXPRESSION_FOUND);
- }
if (isToken(SearchQueryToken.Token.AND) || isToken(SearchQueryToken.Token.OPEN) || isTerm()) {
expression = processAnd(expression);
@@ -106,18 +110,15 @@ public class SearchParser {
return token != null && token.getToken() == toCheckToken;
}
- private void validateToken(SearchQueryToken.Token toValidateToken) throws SearchParserException {
- if (!isToken(toValidateToken)) {
- String actualToken = token == null ? "null" : token.getToken().toString();
- throw new SearchParserException("Expected " + toValidateToken + " but was " + actualToken,
- SearchParserException.MessageKeys.EXPECTED_DIFFERENT_TOKEN, toValidateToken.toString(), actualToken);
+ private void processClose() throws SearchParserException {
+ if (isToken(Token.CLOSE)) {
+ nextToken();
+ } else {
+ throw new SearchParserException("Missing close bracket after open bracket.",
+ SearchParserException.MessageKeys.MISSING_CLOSE);
}
}
- private void processClose() {
- nextToken();
- }
-
private void processOpen() {
nextToken();
}
@@ -137,7 +138,10 @@ public class SearchParser {
} else {
if (isToken(SearchQueryToken.Token.AND) || isToken(SearchQueryToken.Token.OR)) {
throw new SearchParserException("Operators must not be followed by an AND or an OR",
- SearchParserException.MessageKeys.INVALID_OPERATOR_AFTER_AND, token.getToken().toString());
+ SearchParserException.MessageKeys.INVALID_OPERATOR_AFTER_AND, token.getToken().name());
+ } else if(isEof()) {
+ throw new SearchParserException("Missing search expression after AND (found end of search query)",
+ SearchParserException.MessageKeys.INVALID_END_OF_QUERY, Token.AND.name());
}
se = processSearchExpression(se);
return new SearchBinaryImpl(left, SearchBinaryOperatorKind.AND, se);
@@ -148,6 +152,10 @@ public class SearchParser {
if (isToken(SearchQueryToken.Token.OR)) {
nextToken();
}
+ if(isEof()) {
+ throw new SearchParserException("Missing search expression after OR (found end of search query)",
+ SearchParserException.MessageKeys.INVALID_END_OF_QUERY, Token.OR.name());
+ }
SearchExpression se = processSearchExpression(left);
return new SearchBinaryImpl(left, SearchBinaryOperatorKind.OR, se);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParserException.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParserException.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParserException.java
index 9e612a0..1bc60dc 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParserException.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchParserException.java
@@ -25,17 +25,23 @@ public class SearchParserException extends UriParserSyntaxException {
private static final long serialVersionUID = 5781553037561337795L;
public enum MessageKeys implements MessageKey {
+ NO_EXPRESSION_FOUND,
/** parameter: message */
TOKENIZER_EXCEPTION,
/** parameter: tokenCharacter */
INVALID_TOKEN_CHARACTER_FOUND,
/** parameter: operatorkind */
- INVALID_BINARY_OPERATOR_POSITION,
+ INVALID_BINARY_OPERATOR_POSITION,
/** parameter: operatorkind */
INVALID_NOT_OPERAND,
+ /** parameters: - */
+ MISSING_CLOSE,
/** parameters: expectedToken actualToken */
EXPECTED_DIFFERENT_TOKEN,
- NO_EXPRESSION_FOUND,
+ /** parameters: actualToken */
+ INVALID_END_OF_QUERY,
+ /** parameters: left_over_token */
+ INVALID_END_OF_QUERY_TOKEN_LEFT,
/** parameter: operatorkind */
INVALID_OPERATOR_AFTER_AND;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
index ffff1b5..5c42e6d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
@@ -84,6 +84,7 @@ public class SearchTokenizer {
this.finished = true;
return this;
}
+
public State finishAs(Token token) {
this.finished = true;
return changeToken(token);
@@ -97,6 +98,13 @@ public class SearchTokenizer {
return token;
}
+ public String getTokenName() {
+ if(token == null) {
+ return "NULL";
+ }
+ return token.name();
+ }
+
public State close() throws SearchTokenizerException {
return this;
}
@@ -260,7 +268,7 @@ public class SearchTokenizer {
@Override
public String toString() {
- return this.getToken() + "=>{" + getLiteral() + "}";
+ return getToken() + "=>{" + getLiteral() + "}";
}
}
@@ -292,7 +300,7 @@ public class SearchTokenizer {
public State init(char c) throws SearchTokenizerException {
if (isFinished()) {
throw new SearchTokenizerException(toString() + " is already finished.",
- SearchTokenizerException.MessageKeys.ALREADY_FINISHED);
+ SearchTokenizerException.MessageKeys.ALREADY_FINISHED, getTokenName());
}
literal.append(c);
return this;
@@ -348,10 +356,9 @@ public class SearchTokenizer {
public SearchWordState(State toConsume) throws SearchTokenizerException {
super(Token.WORD, toConsume.getLiteral());
- char[] chars = literal.toString().toCharArray();
- for (char aChar : chars) {
- if (!isAllowedWord(aChar)) {
- forbidden(aChar);
+ for (int i = 0; i < literal.length(); i++) {
+ if (!isAllowedWord(literal.charAt(i))) {
+ forbidden(literal.charAt(i));
}
}
}
@@ -479,7 +486,8 @@ public class SearchTokenizer {
changeToken(Token.WORD).finish();
return new RwsState();
}
- return new SearchWordState(this).nextChar(c);
+ literal.append(c);
+ return new SearchWordState(this);
}
@Override
public State close() throws SearchTokenizerException {
@@ -511,7 +519,8 @@ public class SearchTokenizer {
changeToken(Token.WORD).finish();
return new RwsState();
}
- return new SearchWordState(this).nextChar(c);
+ literal.append(c);
+ return new SearchWordState(this);
}
@Override
public State close() throws SearchTokenizerException {
@@ -540,7 +549,8 @@ public class SearchTokenizer {
changeToken(Token.WORD).finish();
return new RwsState();
}
- return new SearchWordState(this).nextChar(c);
+ literal.append(c);
+ return new SearchWordState(this);
}
@Override
public State close() throws SearchTokenizerException {
@@ -620,7 +630,7 @@ public class SearchTokenizer {
states.add(state);
} else {
throw new SearchTokenizerException("Last parsed state '" + state.toString() + "' is not finished.",
- SearchTokenizerException.MessageKeys.NOT_FINISHED_QUERY);
+ SearchTokenizerException.MessageKeys.NOT_FINISHED_QUERY, state.getTokenName());
}
return states;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerException.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerException.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerException.java
index abdf84c..6ebec5a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerException.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerException.java
@@ -25,15 +25,15 @@ public class SearchTokenizerException extends UriParserSyntaxException {
private static final long serialVersionUID = -8295456415309640166L;
public enum MessageKeys implements MessageKey {
- /** parameter: character */
+ /** parameter: character, TOKEN */
FORBIDDEN_CHARACTER,
/** parameter: TOKEN */
NOT_EXPECTED_TOKEN,
- /** parameter: - */
+ /** parameter: TOKEN */
NOT_FINISHED_QUERY,
- /** parameter: - */
+ /** parameter: TOKEN */
INVALID_TOKEN_STATE,
- /** parameter: - */
+ /** parameter: TOKEN */
ALREADY_FINISHED;
@Override
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
index bfb9440..a2baf0f 100644
--- a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
+++ b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
@@ -44,6 +44,15 @@ SearchParserException.INVALID_NOT_OPERAND=Invalid not operand for kind '%1$s' fo
SearchParserException.EXPECTED_DIFFERENT_TOKEN=Expected token '%1$s' but found '%2$s'.
SearchParserException.NO_EXPRESSION_FOUND=No expression found.
SearchParserException.INVALID_OPERATOR_AFTER_AND=Invalid operator after AND found of kind '%1$s'.
+SearchParserException.INVALID_END_OF_QUERY=Invalid end of search query after '%1$s' (query must end with a search phrase or word).
+SearchParserException.INVALID_END_OF_QUERY_TOKEN_LEFT=Invalid end of search query. Found not processed token '%1$s' at the end.
+SearchParserException.MISSING_CLOSE=Missing closing bracket after an opening bracket.
+
+SearchTokenizerException.FORBIDDEN_CHARACTER=Not allowed character '%1$s' found for token '%2$s'.
+SearchTokenizerException.NOT_EXPECTED_TOKEN=Not expected token '%1$s' found.
+SearchTokenizerException.NOT_FINISHED_QUERY=Search query end in an invalid state after token '%1$s'.
+SearchTokenizerException.INVALID_TOKEN_STATE=Token '%1$s' is in an invalid state.
+SearchTokenizerException.ALREADY_FINISHED=Token '%1$s' is already in finished state.
UriParserSemanticException.FUNCTION_NOT_FOUND=The function import '%1$s' has no function with parameters '%2$s'.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
index 0aa79ab..f6722b8 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserAndTokenizerTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.olingo.server.core.uri.parser.search;
-import org.apache.olingo.server.api.ODataLibraryException;
import org.apache.olingo.server.api.uri.queryoption.SearchOption;
import org.apache.olingo.server.api.uri.queryoption.search.SearchExpression;
import org.junit.Assert;
@@ -71,6 +70,22 @@ public class SearchParserAndTokenizerTest {
assertQuery("NOT").resultsIn(SearchParserException.MessageKeys.INVALID_NOT_OPERAND);
assertQuery("AND").resultsIn(SearchParserException.MessageKeys.INVALID_BINARY_OPERATOR_POSITION);
assertQuery("OR").resultsIn(SearchParserException.MessageKeys.INVALID_BINARY_OPERATOR_POSITION);
+
+ assertQuery("NOT a AND").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY);
+ assertQuery("NOT a OR").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY);
+ assertQuery("a AND").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY);
+ assertQuery("a OR").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY);
+
+ assertQuery("a OR b)").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY_TOKEN_LEFT);
+ assertQuery("a NOT b)").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY_TOKEN_LEFT);
+ assertQuery("a AND b)").resultsIn(SearchParserException.MessageKeys.INVALID_END_OF_QUERY_TOKEN_LEFT);
+
+ assertQuery("(a OR b").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
+ assertQuery("(a NOT b").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
+ assertQuery("((a AND b)").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
+ assertQuery("((a AND b OR c)").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
+ assertQuery("a AND (b OR c").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
+ assertQuery("(a AND ((b OR c)").resultsIn(SearchParserException.MessageKeys.MISSING_CLOSE);
}
private static Validator assertQuery(String searchQuery) {
@@ -95,13 +110,17 @@ public class SearchParserAndTokenizerTest {
return this;
}
- private void resultsIn(ODataLibraryException.MessageKey key)
+ private void resultsIn(SearchParserException.MessageKey key)
throws SearchTokenizerException {
try {
resultsIn(searchQuery);
- } catch (ODataLibraryException e) {
- Assert.assertEquals(SearchParserException.class, e.getClass());
- Assert.assertEquals(key, e.getMessageKey());
+ } catch (SearchParserException e) {
+ Assert.assertEquals("SearchParserException with unexpected message '" + e.getMessage() +
+ "' was thrown.", key, e.getMessageKey());
+ if(log) {
+ System.out.println("Caught SearchParserException with message key " +
+ e.getMessageKey() + " and message " + e.getMessage());
+ }
return;
}
Assert.fail("SearchParserException with message key " + key.getKey() + " was not thrown.");
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserTest.java
index 5d3f2dc..578f89f 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchParserTest.java
@@ -188,13 +188,22 @@ public class SearchParserTest extends SearchParser {
}
@Test
+ public void invalidQueryEnds() {
+ runEx(MessageKeys.INVALID_END_OF_QUERY, Token.WORD, Token.AND);
+ runEx(MessageKeys.INVALID_END_OF_QUERY, Token.WORD, Token.OR);
+ runEx(MessageKeys.INVALID_END_OF_QUERY, Token.NOT, Token.WORD, Token.OR);
+ runEx(MessageKeys.INVALID_END_OF_QUERY, Token.NOT, Token.WORD, Token.AND);
+ runEx(MessageKeys.INVALID_END_OF_QUERY_TOKEN_LEFT, Token.WORD, Token.AND, Token.WORD, Token.CLOSE);
+ }
+
+ @Test
public void singleAnd() {
runEx(SearchParserException.MessageKeys.INVALID_BINARY_OPERATOR_POSITION, Token.AND);
}
@Test
public void singleOpenBracket() {
- runEx(SearchParserException.MessageKeys.EXPECTED_DIFFERENT_TOKEN, Token.OPEN);
+ runEx(SearchParserException.MessageKeys.NO_EXPRESSION_FOUND, Token.OPEN);
}
@Test
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/69ef9f51/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
index 133bb2e..abf06b7 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
@@ -290,11 +290,14 @@ public class SearchTokenizerTest {
@Test
public void tokenizeInvalid() throws SearchTokenizerException {
//
- assertQuery("( abc AND) OR something").resultsIn(SearchTokenizerException.class);
-
- assertQuery("\"phrase\"word").resultsIn(SearchTokenizerException.class);
- assertQuery("\"p\"w").resultsIn(SearchTokenizerException.class);
- assertQuery("\"\"").resultsIn(SearchTokenizerException.class);
+ assertQuery("( abc AND) OR something").resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
+
+ assertQuery("\"phrase\"word").resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
+ assertQuery("\"p\"w").resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
+ assertQuery("\"\"").resultsIn(SearchTokenizerException.MessageKeys.INVALID_TOKEN_STATE);
+ assertQuery("some AND)").resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
+ assertQuery("some OR)").resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
+ assertQuery("some NOT)").enableLogging().resultsIn(SearchTokenizerException.MessageKeys.FORBIDDEN_CHARACTER);
}
@Test
@@ -302,9 +305,15 @@ public class SearchTokenizerTest {
assertQuery("AND").resultsIn(AND);
assertQuery("OR").resultsIn(OR);
assertQuery("NOT").resultsIn(NOT);
+ assertQuery("a AND").resultsIn(WORD, AND);
+ assertQuery("o OR").resultsIn(WORD, OR);
+ assertQuery("n NOT").resultsIn(WORD, NOT);
assertQuery("NOT AND").resultsIn(NOT, AND);
+ assertQuery("NOT and AND").resultsIn(NOT, WORD, AND);
assertQuery("NOT OR").resultsIn(NOT, OR);
+ assertQuery("NOT a OR").resultsIn(NOT, WORD, OR);
assertQuery("NOT NOT").resultsIn(NOT, NOT);
+ assertQuery("some AND other)").resultsIn(WORD, AND, WORD, CLOSE);
assertQuery("abc AND OR something").resultsIn(WORD, AND, OR, WORD);
assertQuery("abc AND \"something\" )").resultsIn(WORD, AND, PHRASE, CLOSE);
}
@@ -359,10 +368,6 @@ public class SearchTokenizerTest {
this.searchQuery = searchQuery;
}
- private static Validator init(String searchQuery) {
- return new Validator(searchQuery);
- }
-
@SuppressWarnings("unused")
private Validator enableLogging() {
log = true;
@@ -378,22 +383,26 @@ public class SearchTokenizerTest {
}
return this;
}
- private void resultsIn(Class<? extends Exception> exception) throws SearchTokenizerException {
- try {
- new SearchTokenizer().tokenize(searchQuery);
- } catch (Exception e) {
- Assert.assertEquals(exception, e.getClass());
- return;
- }
- Assert.fail("Expected exception " + exception.getClass().getSimpleName() + " was not thrown.");
- }
+// private void resultsIn(Class<? extends Exception> exception) throws SearchTokenizerException {
+// try {
+// validate();
+// } catch (Exception e) {
+// Assert.assertEquals(exception, e.getClass());
+// return;
+// }
+// Assert.fail("Expected exception " + exception.getClass().getSimpleName() + " was not thrown.");
+// }
private void resultsIn(SearchTokenizerException.MessageKey key)
throws SearchTokenizerException {
try {
- init(searchQuery).validate();
+ validate();
} catch (SearchTokenizerException e) {
Assert.assertEquals("SearchTokenizerException with unexpected message was thrown.", key, e.getMessageKey());
+ if(log) {
+ System.out.println("Caught SearchTokenizerException with message key " +
+ e.getMessageKey() + " and message " + e.getMessage());
+ }
return;
}
Assert.fail("No SearchTokenizerException was not thrown.");