Consider Target Fields when validating RSQL filters (#1121)
* Removed unnecessary DB queries when editing/validating RSQL query in Target Filter Management (#1023) Added valid TargetFields to RSQL validation when editing Target Filter. Signed-off-by: Sergey Gerasimov <sergey.gerasimov@devolo.de> * Corrected visit OrNode implementation. Changed isValid to receive FieldNameProvider as parameter Reduced code duplication by moving commonly used utility methods to AbstractFieldNameRSQLVisitor from ValidationRSQLVisitor abd JpqQueryRSQLVisitor Refactored and extended Unit Tests. Minor corrections and typos. Signed-off-by: Sergey Gerasimov <sergey.gerasimov@devolo.de> * Added Maven entry for devolo 2020 copyright header. Signed-off-by: Sergey Gerasimov <sergey.gerasimov@devolo.de> * Fix failing unit tests * # WARNING: head commit changed in the meantime Signed-off-by: Stefan Behl <stefan.behl@bosch.io> * Fix Sonar findings. Signed-off-by: Stefan Behl <stefan.behl@bosch.io> * Cleanup Signed-off-by: Stefan Behl <stefan.behl@bosch.io> * Fix PR review findings * Fix invalid queries in unit tests Signed-off-by: Stefan Behl <stefan.behl@bosch.io> * Added test case to create filter with invalid query via Mgmt REST API Signed-off-by: Stefan Behl <stefan.behl@bosch.io> Co-authored-by: Sergey Gerasimov <sergey.gerasimov@devolo.de>
This commit is contained in:
@@ -85,7 +85,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
@Description("Ensures that deletion is executed if permitted.")
|
||||
public void deleteTargetFilterQueryReturnsOK() throws Exception {
|
||||
final String filterName = "filter_01";
|
||||
final TargetFilterQuery filterQuery = createSingleTargetFilterQuery(filterName, "name=test_01");
|
||||
final TargetFilterQuery filterQuery = createSingleTargetFilterQuery(filterName, "name==test_01");
|
||||
|
||||
mvc.perform(delete(MgmtRestConstants.TARGET_FILTER_V1_REQUEST_MAPPING + "/" + filterQuery.getId()))
|
||||
.andExpect(status().isOk());
|
||||
@@ -114,8 +114,8 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
@Description("Ensures that update request is reflected by repository.")
|
||||
public void updateTargetFilterQueryQuery() throws Exception {
|
||||
final String filterName = "filter_02";
|
||||
final String filterQuery = "name=test_02";
|
||||
final String filterQuery2 = "name=test_02_changed";
|
||||
final String filterQuery = "name==test_02";
|
||||
final String filterQuery2 = "name==test_02_changed";
|
||||
final String body = new JSONObject().put("query", filterQuery2).toString();
|
||||
|
||||
// prepare
|
||||
@@ -137,7 +137,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
public void updateTargetFilterQueryName() throws Exception {
|
||||
final String filterName = "filter_03";
|
||||
final String filterName2 = "filter_03_changed";
|
||||
final String filterQuery = "name=test_03";
|
||||
final String filterQuery = "name==test_03";
|
||||
final String body = new JSONObject().put("name", filterName2).toString();
|
||||
|
||||
// prepare
|
||||
@@ -162,7 +162,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
final String idA = "a";
|
||||
final String idB = "b";
|
||||
final String idC = "c";
|
||||
final String testQuery = "name=test";
|
||||
final String testQuery = "name==test";
|
||||
|
||||
createSingleTargetFilterQuery(idA, testQuery);
|
||||
createSingleTargetFilterQuery(idB, testQuery);
|
||||
@@ -191,7 +191,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
final String idA = "a";
|
||||
final String idB = "b";
|
||||
final String idC = "c";
|
||||
final String testQuery = "name=test";
|
||||
final String testQuery = "name==test";
|
||||
|
||||
createSingleTargetFilterQuery(idA, testQuery);
|
||||
createSingleTargetFilterQuery(idB, testQuery);
|
||||
@@ -217,7 +217,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
final String idC = "c";
|
||||
final String idD = "d";
|
||||
final String idE = "e";
|
||||
final String testQuery = "name=test";
|
||||
final String testQuery = "name==test";
|
||||
|
||||
createSingleTargetFilterQuery("a", testQuery);
|
||||
createSingleTargetFilterQuery("b", testQuery);
|
||||
@@ -247,7 +247,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
@Description("Ensures that a single target filter query can be retrieved via its id.")
|
||||
public void getSingleTarget() throws Exception {
|
||||
// create first a target which can be retrieved by rest interface
|
||||
final String knownQuery = "name=test01";
|
||||
final String knownQuery = "name==test01";
|
||||
final String knownName = "someName";
|
||||
final TargetFilterQuery tfq = createSingleTargetFilterQuery(knownName, knownQuery);
|
||||
final String hrefPrefix = "http://localhost" + MgmtRestConstants.TARGET_FILTER_V1_REQUEST_MAPPING + "/"
|
||||
@@ -294,6 +294,18 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte
|
||||
assertThat(exceptionInfo.getExceptionClass()).isEqualTo(MessageNotReadableException.class.getName());
|
||||
assertThat(exceptionInfo.getErrorCode()).isEqualTo(SpServerError.SP_REST_BODY_NOT_READABLE.getKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Description("Ensures that the creation of a target filter query based on an invalid RSQL query results in a HTTP Bad Request error (400).")
|
||||
public void createTargetFilterWithInvalidQuery() throws Exception {
|
||||
final String invalidQuery = "name=abc";
|
||||
final String body = new JSONObject().put("query", invalidQuery).put("name", "invalidFilter").toString();
|
||||
|
||||
mvc.perform(post(MgmtRestConstants.TARGET_FILTER_V1_REQUEST_MAPPING).content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON)).andDo(print()).andExpect(status().isBadRequest()).andReturn();
|
||||
|
||||
assertThat(targetFilterQueryManagement.count()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Description("Ensures that the assignment of an auto-assign distribution set results in a HTTP Forbidden error (403) "
|
||||
|
||||
Reference in New Issue
Block a user