/** * personium.io * Copyright 2014 FUJITSU LIMITED * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.fujitsu.dc.test.jersey.box.odatacol; import org.apache.http.HttpStatus; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import com.fujitsu.dc.core.DcCoreConfig; import com.fujitsu.dc.core.DcCoreException; import com.fujitsu.dc.test.categories.Integration; import com.fujitsu.dc.test.categories.Regression; import com.fujitsu.dc.test.categories.Unit; import com.fujitsu.dc.test.jersey.DcRunner; import com.fujitsu.dc.test.jersey.ODataCommon; import com.fujitsu.dc.test.setup.Setup; import com.fujitsu.dc.test.utils.TResponse; import com.fujitsu.dc.test.utils.UserDataUtils; /** * UserData一覧のテスト. */ @RunWith(DcRunner.class) @Category({Unit.class, Integration.class, Regression.class }) public class UserDataListFilterTypeValidateTest extends AbstractUserDataTest { private static final String TOKEN = DcCoreConfig.getMasterToken(); private static final String CELL = "filterTypeValidateTest"; private static final String BOX = "box"; private static final String COL = "odata"; private static final String ENTITY = "entity"; private static final String NAMESPACE = "UserData." + ENTITY; /** * コンストラクタ. */ public UserDataListFilterTypeValidateTest() { super(); } /** * Edm_String型の$filter_eq検索の検証. */ @Test public final void Edm_String型の$filter_eq検索の検証() { // Edm.Stringの検索条件:文字列: "string data" String query = "?\\$filter=string+eq+%27string%20data%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Stringの検索条件: 文字列: "" query = "?\\$filter=string+eq+%27%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Stringの検索条件: null query = "?\\$filter=string+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Stringの検索条件: 整数: 1111 query = "?\\$filter=string+eq+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 整数: 1111 eq以外の演算子(gt) query = "?\\$filter=string+gt+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 整数: 1111 startswith() query = "?\\$filter=startswith%28string%2C1111%29"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 整数: 1111 startswith() query = "?\\$filter=substringof%281111%2Cstring%29"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=string+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=string+eq+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 真偽値: true query = "?\\$filter=string+eq+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); } /** * Edm_String型の$filter_ne検索の検証. */ @Test public final void Edm_String型の$filter_ne検索の検証() { // Edm.Stringの検索条件:文字列: "string data" String query = "?\\$filter=string+ne+%27string%20data%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Stringの検索条件: 文字列: "" query = "?\\$filter=string+ne+%27%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Stringの検索条件: null query = "?\\$filter=string+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Stringの検索条件: 整数: 1111 query = "?\\$filter=string+ne+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=string+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=string+ne+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); // Edm.Stringの検索条件: 真偽値: true query = "?\\$filter=string+ne+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("string").getMessage()); } /** * Edm_Int32型の$filter_eq検索の検証. */ @Test public final void Edm_Int32型の$filter_eq検索の検証() { // Edm.Int32の検索条件:整数: 1111 String query = "?\\$filter=int32+eq+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: LONG: 1111L query = "?\\$filter=int32+eq+1111L&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: null query = "?\\$filter=int32+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: 文字列: "1111" query = "?\\$filter=int32+eq+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 文字列: "1111" eq以外の演算子(ge) query = "?\\$filter=int32+ge+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 文字列: "aaaa" query = "?\\$filter=int32+eq+%27aaaa%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=int32+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=int32+eq+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 真偽値: true query = "?\\$filter=int32+eq+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // 値の範囲チェック // Edm.Int32の検索条件: 範囲内(最大値 2147483647) query = "?\\$filter=int32+eq+2147483647&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: 範囲内(最小値 -2147483648) query = "?\\$filter=int32+eq+-2147483648&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: 範囲外(最大値 2147483647 + 1): 2147483648 query = "?\\$filter=int32+eq+2147483648&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("int32").getMessage()); // Edm.Int32の検索条件: 範囲外(最小値 -2147483648 - 1): -2147483649 query = "?\\$filter=int32+eq+-2147483649&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("int32").getMessage()); } /** * Edm_Int32型の$filter_ne検索の検証. */ @Test public final void Edm_Int32型の$filter_ne検索の検証() { // Edm.Int32の検索条件:整数: 1111 String query = "?\\$filter=int32+ne+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: LONG: 1111L query = "?\\$filter=int32+ne+1111L&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: null query = "?\\$filter=int32+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: 文字列: "1111" query = "?\\$filter=int32+ne+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 文字列: "aaaa" query = "?\\$filter=int32+ne+%27aaaa%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=int32+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=int32+ne+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // Edm.Int32の検索条件: 真偽値: true query = "?\\$filter=int32+ne+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32").getMessage()); // 値の範囲チェック // Edm.Int32の検索条件: 範囲内(最大値 2147483647) query = "?\\$filter=int32+ne+2147483647&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: 範囲内(最小値 -2147483648) query = "?\\$filter=int32+ne+-2147483648&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: 範囲外(最大値 2147483647 + 1): 2147483648 query = "?\\$filter=int32+ne+2147483648&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("int32").getMessage()); // Edm.Int32の検索条件: 範囲外(最小値 -2147483648 - 1): -2147483649 query = "?\\$filter=int32+ne+-2147483649&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("int32").getMessage()); } /** * Edm_Single型の$filter_eq検索の検証. */ @Test public final void Edm_Single型の$filter_eq検索の検証() { // Edm.Singleの検索条件:整数: 1111 String query = "?\\$filter=single+eq+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=single+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 実数値(倍精度): 1111.11111 query = "?\\$filter=single+eq+1111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Singleの検索条件: null query = "?\\$filter=single+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Singleの検索条件: 文字列: "1111" query = "?\\$filter=single+eq+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 文字列: "1111" eq以外の演算子(lt) query = "?\\$filter=single+lt+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 文字列: "1111.11" query = "?\\$filter=single+eq+%271111.11%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 文字列: "1111.1a" query = "?\\$filter=single+eq+%271111.1a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 真偽値: true query = "?\\$filter=single+eq+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: Single: 1111.11f query = "?\\$filter=single+eq+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: Decimal: 1111.11m query = "?\\$filter=single+eq+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // 値の範囲チェック // Edm.Singleの検索条件: 整数部分5桁 小数部分 5桁: 11111.11111 query = "?\\$filter=single+eq+11111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Singleの検索条件: 整数部分6桁 小数部分 5桁: 111111.11111 query = "?\\$filter=single+eq+111111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); // Edm.Singleの検索条件: 整数部分5桁 小数部分 6桁: 11111.111111 query = "?\\$filter=single+eq+11111.111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); // Edm.Singleの検索条件: 整数部分6桁 小数部分 6桁: 111111.111111 query = "?\\$filter=single+eq+111111.111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); } /** * Edm_Single型の$filter_ne検索の検証. */ @Test public final void Edm_Single型の$filter_ne検索の検証() { // Edm.Singleの検索条件:整数: 1111 String query = "?\\$filter=single+ne+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=single+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 実数値(倍精度): 1111.11111 query = "?\\$filter=single+ne+1111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Singleの検索条件: null query = "?\\$filter=single+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Singleの検索条件: 文字列: "1111" query = "?\\$filter=single+ne+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 文字列: "1111.11" query = "?\\$filter=single+ne+%271111.11%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 文字列: "1111.1a" query = "?\\$filter=single+ne+%271111.1a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: 真偽値: true query = "?\\$filter=single+ne+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: Single: 1111.11f query = "?\\$filter=single+ne+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // Edm.Singleの検索条件: Decimal: 1111.11m query = "?\\$filter=single+ne+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("single").getMessage()); // 値の範囲チェック // Edm.Singleの検索条件: 整数部分5桁 小数部分 5桁: 11111.11111 query = "?\\$filter=single+ne+11111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Singleの検索条件: 整数部分6桁 小数部分 5桁: 111111.11111 query = "?\\$filter=single+ne+111111.11111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); // Edm.Singleの検索条件: 整数部分5桁 小数部分 6桁: 11111.111111 query = "?\\$filter=single+ne+11111.111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); // Edm.Singleの検索条件: 整数部分6桁 小数部分 6桁: 111111.111111 query = "?\\$filter=single+ne+111111.111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("single").getMessage()); } /** * Edm_Double型の$filter_eq検索の検証. */ @Test public final void Edm_Double型の$filter_eq検索の検証() { // Edm.Doubleの検索条件:整数: 1111 String query = "?\\$filter=double+eq+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=double+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Doubleの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=double+eq+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: null query = "?\\$filter=double+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Doubleの検索条件: 文字列: "1111" query = "?\\$filter=double+eq+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 文字列: "1111" eq以外の演算子(le) query = "?\\$filter=double+le+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 文字列: "1111.1111111" query = "?\\$filter=double+eq+%271111.1111111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 文字列: "1111.111111a" query = "?\\$filter=double+eq+%271111.111111a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 真偽値: true query = "?\\$filter=double+eq+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: Single: 1111.11f query = "?\\$filter=double+eq+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: Decimal: 1111.11m query = "?\\$filter=double+eq+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // 値の範囲チェック // 現状、指数表記での$filter検索はできない(制限事項)ため、チェックせず。 } /** * Edm_Double型の$filter_ne検索の検証. */ @Test public final void Edm_Double型の$filter_ne検索の検証() { // Edm.Doubleの検索条件:整数: 1111 String query = "?\\$filter=double+ne+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=double+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Doubleの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=double+ne+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: null query = "?\\$filter=double+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Doubleの検索条件: 文字列: "1111" query = "?\\$filter=double+ne+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 文字列: "1111.1111111" query = "?\\$filter=double+ne+%271111.1111111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 文字列: "1111.111111a" query = "?\\$filter=double+ne+%271111.111111a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: 真偽値: true query = "?\\$filter=double+ne+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: Single: 1111.11f query = "?\\$filter=double+ne+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // Edm.Doubleの検索条件: Decimal: 1111.11m query = "?\\$filter=double+ne+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("double").getMessage()); // 値の範囲チェック // 現状、指数表記での$filter検索はできない(制限事項)ため、チェックせず。 } /** * Edm_Boolean型の$filter_eq検索の検証. */ @Test public final void Edm_Boolean型の$filter_eq検索の検証() { // Edm.Booleanの検索条件: 真偽値: true String query = "?\\$filter=boolean+eq+true&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Booleanの検索条件: null query = "?\\$filter=boolean+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Booleanの検索条件: 文字列: "true" query = "?\\$filter=boolean+eq+%27true%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件:整数: 1111 query = "?\\$filter=boolean+eq+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=boolean+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=boolean+eq+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: Single: 1111.11f query = "?\\$filter=boolean+eq+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: Decimal: 1111.11m query = "?\\$filter=boolean+eq+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); } /** * Edm_Boolean型の$filter_ne検索の検証. */ @Test public final void Edm_Boolean型の$filter_ne検索の検証() { // Edm.Booleanの検索条件: 真偽値: true String query = "?\\$filter=boolean+ne+true&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Booleanの検索条件: null query = "?\\$filter=boolean+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Booleanの検索条件: 文字列: "true" query = "?\\$filter=boolean+ne+%27true%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件:整数: 1111 query = "?\\$filter=boolean+ne+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=boolean+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=boolean+ne+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: Single: 1111.11f query = "?\\$filter=boolean+ne+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); // Edm.Booleanの検索条件: Decimal: 1111.11m query = "?\\$filter=boolean+ne+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("boolean").getMessage()); } /** * Edm_DateTime型の$filter_eq検索の検証. */ @Test public final void Edm_DateTime型の$filter_eq検索の検証() { // Edm.DateTimeの検索条件:整数: 1111 String query = "?\\$filter=datetime+eq+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.DateTimeの検索条件:整数(LONG): 1420589956172 query = "?\\$filter=datetime+eq+1420589956172&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.DateTimeの検索条件:null query = "?\\$filter=datetime+eq+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.DateTimeの検索条件:文字列: "1420589956172" query = "?\\$filter=datetime+eq+%271420589956172%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 文字列: "/Date(1410689956172)/" query = "?\\$filter=datetime+eq+%27%2FDate%281420589956172%29%2F%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=datetime+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=datetime+eq+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 真偽値: true query = "?\\$filter=datetime+eq+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: Single: 1111.11f query = "?\\$filter=datetime+eq+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: Decimal: 1111.11m query = "?\\$filter=datetime+eq+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // 値の範囲チェック // Edm.DateTimeの検索条件:最大値: 253402300799999 query = "?\\$filter=datetime+eq+253402300799999&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.DateTimeの検索条件:最小値: -6847804800000 query = "?\\$filter=datetime+eq+-6847804800000&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.DateTimeの検索条件:最大値(253402300799999) + 1: 253402300800000 query = "?\\$filter=datetime+eq+253402300800000&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("datetime").getMessage()); // Edm.DateTimeの検索条件:最小値(-6847804800000) + 1: -6847804800001 query = "?\\$filter=datetime+eq+-6847804800001&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("datetime").getMessage()); } /** * Edm_DateTime型の$filter_ne検索の検証. */ @Test public final void Edm_DateTime型の$filter_ne検索の検証() { // Edm.DateTimeの検索条件:整数: 1111 String query = "?\\$filter=datetime+ne+1111&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.DateTimeの検索条件:整数(LONG): 1420589956172 query = "?\\$filter=datetime+ne+1420589956172&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.DateTimeの検索条件:null query = "?\\$filter=datetime+ne+null&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.DateTimeの検索条件:文字列: "1420589956172" query = "?\\$filter=datetime+ne+%271420589956172%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 文字列: "/Date(1410689956172)/" query = "?\\$filter=datetime+ne+%27%2FDate%281420589956172%29%2F%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=datetime+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 実数値(倍精度): 1111.1111111 query = "?\\$filter=datetime+ne+1111.1111111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: 真偽値: true query = "?\\$filter=datetime+ne+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: Single: 1111.11f query = "?\\$filter=datetime+ne+1111.11f&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // Edm.DateTimeの検索条件: Decimal: 1111.11m query = "?\\$filter=datetime+ne+1111.11m&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("datetime").getMessage()); // 値の範囲チェック // Edm.DateTimeの検索条件:最大値: 253402300799999 query = "?\\$filter=datetime+ne+253402300799999&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.DateTimeの検索条件:最小値: -6847804800000 query = "?\\$filter=datetime+ne+-6847804800000&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.DateTimeの検索条件:最大値(253402300799999) + 1: 253402300800000 query = "?\\$filter=datetime+ne+253402300800000&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("datetime").getMessage()); // Edm.DateTimeの検索条件:最小値(-6847804800000) + 1: -6847804800001 query = "?\\$filter=datetime+ne+-6847804800001&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.getCode(), DcCoreException.OData.UNSUPPORTED_OPERAND_FORMAT.params("datetime").getMessage()); } /** * 動的プロパティの$filter_eq検索の検証. */ @Test public final void 動的プロパティの$filter_eq検索の検証() { // Edm.String // Edm.Stringの検索条件:文字列: "string value" String query = "?\\$filter=d_string+eq+%27string%20value%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Stringの検索条件: 整数: 1111 query = "?\\$filter=d_string+eq+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_string").getMessage()); // Edm.Int32 // Edm.Int32の検索条件:整数: 2222 query = "?\\$filter=d_int32+eq+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32の検索条件: 文字列: "222a" query = "?\\$filter=d_int32+eq+%27222a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_int32").getMessage()); // Edm.Single(動的プロパティでは、Double型として登録される) // Edm.Singleの検索条件:整数: 2222 query = "?\\$filter=d_single+eq+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 文字列: "2222.22" query = "?\\$filter=d_single+eq+%272222.22%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_single").getMessage()); // Edm.Singleの検索条件: 文字列: "2222.2a" query = "?\\$filter=d_single+eq+%272222.2a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_single").getMessage()); // Edm.Double // Edm.Doubleの検索条件:整数: 2222 query = "?\\$filter=d_double+eq+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: 文字列: "2222.2222222" query = "?\\$filter=d_double+eq+%272222.2222222%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_double").getMessage()); // Edm.Doubleの検索条件: 文字列: "2222.222222a" query = "?\\$filter=d_double+eq+%272222.222222a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_double").getMessage()); // Edm.Boolean // Edm.Booleanの検索条件: 真偽値: false query = "?\\$filter=d_boolean+eq+false&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Booleanの検索条件: 文字列: "false" query = "?\\$filter=d_boolean+eq+%27false%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_boolean").getMessage()); // Edm.DateTime(動的プロパティは未サポートのため、Edm.String型として登録される) // Edm.DateTimeの検索条件:整数(LONG): 1410689956172 query = "?\\$filter=d_datetime+eq+1410689956172&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_datetime").getMessage()); // Edm.DateTimeの検索条件: 文字列: "/Date(1410689956172)/" query = "?\\$filter=d_datetime+eq+%27%2FDate%281410689956172%29%2F%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.DateTimeの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=d_datetime+eq+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_datetime").getMessage()); } /** * 動的プロパティの$filter_ne検索の検証. */ @Test public final void 動的プロパティの$filter_ne検索の検証() { // Edm.String // Edm.Stringの検索条件:文字列: "string value" String query = "?\\$filter=d_string+ne+%27string%20value%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Stringの検索条件: 整数: 1111 query = "?\\$filter=d_string+ne+1111&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_string").getMessage()); // Edm.Int32 // Edm.Int32の検索条件:整数: 2222 query = "?\\$filter=d_int32+ne+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.Int32の検索条件: 文字列: "222a" query = "?\\$filter=d_int32+ne+%27222a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_int32").getMessage()); // Edm.Single(動的プロパティでは、Double型として登録される) // Edm.Singleの検索条件:整数: 2222 query = "?\\$filter=d_single+ne+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Singleの検索条件: 文字列: "2222.22" query = "?\\$filter=d_single+ne+%272222.22%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_single").getMessage()); // Edm.Singleの検索条件: 文字列: "2222.2a" query = "?\\$filter=d_single+ne+%272222.2a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_single").getMessage()); // Edm.Double // Edm.Doubleの検索条件:整数: 2222 query = "?\\$filter=d_double+ne+2222&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Doubleの検索条件: 文字列: "2222.2222222" query = "?\\$filter=d_double+ne+%272222.2222222%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_double").getMessage()); // Edm.Doubleの検索条件: 文字列: "2222.222222a" query = "?\\$filter=d_double+ne+%272222.222222a%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_double").getMessage()); // Edm.Boolean // Edm.Booleanの検索条件: 真偽値: false query = "?\\$filter=d_boolean+ne+false&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Booleanの検索条件: 文字列: "false" query = "?\\$filter=d_boolean+ne+%27false%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_boolean").getMessage()); // Edm.DateTime(動的プロパティは未サポートのため、Edm.String型として登録される) // Edm.DateTimeの検索条件:整数(LONG): 1410689956172 query = "?\\$filter=d_datetime+ne+1410689956172&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_datetime").getMessage()); // Edm.DateTimeの検索条件: 文字列: "/Date(1410689956172)/" query = "?\\$filter=d_datetime+ne+%27%2FDate%281410689956172%29%2F%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // Edm.DateTimeの検索条件: 実数値(単精度): 1111.11 query = "?\\$filter=d_datetime+ne+1111.11&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("d_datetime").getMessage()); } /** * Edm_Boolean型では$filterの検索の比較演算子を指定するとパースエラーとなること. */ @Test public final void Edm_Boolean型では$filterの検索の比較演算子を指定するとパースエラーとなること() { // Edm.Booleanの検索の比較演算子: lt String query = "?\\$filter=boolean+lt+true&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.FILTER_PARSE_ERROR.getCode(), DcCoreException.OData.FILTER_PARSE_ERROR.getMessage()); // Edm.Booleanの検索の比較演算子: le query = "?\\$filter=boolean+le+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.FILTER_PARSE_ERROR.getCode(), DcCoreException.OData.FILTER_PARSE_ERROR.getMessage()); // Edm.Booleanの検索の比較演算子: ge query = "?\\$filter=boolean+ge+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.FILTER_PARSE_ERROR.getCode(), DcCoreException.OData.FILTER_PARSE_ERROR.getMessage()); // Edm.Booleanの検索の比較演算子: gt query = "?\\$filter=boolean+gt+true&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.FILTER_PARSE_ERROR.getCode(), DcCoreException.OData.FILTER_PARSE_ERROR.getMessage()); } /** * Edm_Int32型の配列に対する$filter検索の検証. */ @Test public final void Edm_Int32型の配列に対する$filter検索の検証() { // Edm.Int32配列の検索の比較演算子: eq、検索条件: 文字列:"a" String query = "?\\$filter=int32_list+eq+%27a%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: eq、検索条件: 整数: 数値:3 query = "?\\$filter=int32_list+eq+3&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32配列の検索の比較演算子: ne、検索条件: 文字列:"1111" query = "?\\$filter=int32_list+ne+%271111%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: ne、検索条件: 整数: 数値:6 query = "?\\$filter=int32_list+ne+6&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Int32配列の検索の比較演算子: gt、検索条件: 文字列:"b" query = "?\\$filter=int32_list+gt+%27b%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: gt、検索条件: 整数:5 query = "?\\$filter=int32_list+gt+5&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Int32配列の検索の比較演算子: ge、検索条件: 文字列:"c" query = "?\\$filter=int32_list+ge+%27c%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: ge、検索条件: 整数:5 query = "?\\$filter=int32_list+ge+5&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // Edm.Int32配列の検索の比較演算子: lt、検索条件: 文字列:"d" query = "?\\$filter=int32_list+lt+%27d%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: lt、検索条件: 整数:3 query = "?\\$filter=int32_list+lt+3&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // Edm.Int32配列の検索の比較演算子: le、検索条件: 文字列:"e" query = "?\\$filter=int32_list+le+%27e%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); res.checkErrorResponse(DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.getCode(), DcCoreException.OData.OPERATOR_AND_OPERAND_TYPE_MISMATCHED.params("int32_list").getMessage()); // Edm.Int32配列の検索の比較演算子: le、検索条件: 整数:3 query = "?\\$filter=int32_list+le+3&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); } /** * 管理データ型の$filter_eq検索の検証. */ @Test public final void 管理データ型の$filter_eq検索の検証() { // __idが検索できること String query = "?\\$filter=__id+eq+%27id1%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // __publishedが検索できること query = "?\\$filter=__published+le+1420038000795&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // __updatedが検索できること query = "?\\$filter=__updated+lt+1420038000795&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // __metadataを検索しようとすると400エラーとなること query = "?\\$filter=__metadata+eq+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // NTKPを検索しようとすると400エラーとなること query = "?\\$filter=_SalesDetail+eq+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, "Sales", query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("_SalesDetail").getMessage()); // 予約語ではない__始まりのプロパティを検索しようとすると400エラーとなること query = "?\\$filter=__invalid+eq+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__invalid").getMessage()); } /** * 管理データ型の$filter_ne検索の検証. */ @Test public final void 管理データ型の$filter_ne検索の検証() { // __idが検索できること String query = "?\\$filter=__id+ne+%27id1%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 1); // __publishedが検索できること query = "?\\$filter=__published+ne+1420038000795&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // __updatedが検索できること query = "?\\$filter=__updated+ne+1420038000795&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // __metadataを検索しようとすると400エラーとなること query = "?\\$filter=__metadata+ne+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // NTKPを検索しようとすると400エラーとなること query = "?\\$filter=_SalesDetail+ne+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, "Sales", query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("_SalesDetail").getMessage()); // 予約語ではない__始まりのプロパティを検索しようとすると400エラーとなること query = "?\\$filter=__invalid+ne+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__invalid").getMessage()); } /** * 管理用プロパティがオペランドのプロパティ名として指定できないこと. */ @Test public final void 管理用プロパティがオペランドのプロパティ名として指定できないこと() { // gt String query = "?\\$filter=__metadata+gt+%27invalidKey%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // ge query = "?\\$filter=__metadata+ge+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // lt query = "?\\$filter=__metadata+lt+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); // le query = "?\\$filter=__metadata+le+%27invalidKey%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // startswith query = "?\\$filter=startswith%28__metadata%2c%27invalidKey%27%29&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); // substringof query = "?\\$filter=substringof%28%27invalidKey%27%2c__metadata%29&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_BAD_REQUEST); ODataCommon.checkErrorResponseBody(res, DcCoreException.OData.UNKNOWN_QUERY_KEY.getCode(), DcCoreException.OData.UNKNOWN_QUERY_KEY.params("__metadata").getMessage()); } /** * オペランドに指定した検索条件の値が空文字の場合は検索ヒットしないこと. */ @Test public final void オペランドに指定した検索条件の値が空文字の場合は検索ヒットしないこと() { // eq String query = "?\\$filter=string+eq+%27%27&\\$inlinecount=allpages"; TResponse res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); // ne query = "?\\$filter=string+ne+%27%27&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // startswith: 空文字を指定した場合、V1.3.21では該当プロパティを含むユーザODataを全件取得する。 query = "?\\$filter=startswith%28string%2c%27%27%29&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 2); // substringof: 空文字を指定した場合、V1.3.21では検索ヒットしない。 query = "?\\$filter=substringof%28%27%27%2cstring%29&\\$inlinecount=allpages"; res = UserDataUtils.list(CELL, BOX, COL, ENTITY, query, TOKEN, HttpStatus.SC_OK); ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, NAMESPACE, null, 0); } }