/**
* 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.schema.complextype;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.MediaType;
import org.apache.http.HttpStatus;
import org.json.simple.JSONObject;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import com.fujitsu.dc.core.DcCoreException;
import com.fujitsu.dc.core.model.ctl.Property;
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.AbstractCase;
import com.fujitsu.dc.test.jersey.DcRunner;
import com.fujitsu.dc.test.jersey.ODataCommon;
import com.fujitsu.dc.test.jersey.box.odatacol.schema.complextypeproperty.ComplexTypePropertyUtils;
import com.fujitsu.dc.test.jersey.box.odatacol.schema.property.PropertyUtils;
import com.fujitsu.dc.test.setup.Setup;
import com.fujitsu.dc.test.utils.EntityTypeUtils;
import com.fujitsu.dc.test.utils.TResponse;
/**
* ComplexType更新のテスト.
*/
@RunWith(DcRunner.class)
@Category({Unit.class, Integration.class, Regression.class })
public class ComplexTypeUpdateTest extends ODataCommon {
/**
* コンストラクタ.
*/
public ComplexTypeUpdateTest() {
super("com.fujitsu.dc.core.rs");
}
/**
* 同一のComplexTypeを複数回変名できること.
*/
@Test
public final void 同一のComplexTypeを複数回変名できること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "testComplexTypeRename";
String complexTypeRename2 = "testComplexTypeRename2";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// 変名(1回目)
ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, complexTypeRename, HttpStatus.SC_NO_CONTENT);
// 変名(2回目)
ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, complexTypeRename2, HttpStatus.SC_NO_CONTENT);
// 変名後のComplexTypeを取得できること
TResponse res = ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA,
complexTypeRename2, HttpStatus.SC_OK);
Map<String, Object> additional = new HashMap<String, Object>();
additional.put("Name", complexTypeRename2);
ODataCommon.checkResponseBody(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
// 変更前の名前でComplexTypeを取得できないこと
ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, HttpStatus.SC_NOT_FOUND);
// ComplexTypeの一覧取得で変名後のComplexTypeが取得できること
res = ComplexTypeUtils.list(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
"?\\$filter=Name+eq+'" + complexTypeRename2 + "'", HttpStatus.SC_OK);
additional = new HashMap<String, Object>();
additional.put("Name", complexTypeRename2);
ODataCommon.checkResponseBodyList(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
// 最初の名前でComplexTypeを作成できること
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeを取得できること
res = ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, HttpStatus.SC_OK);
additional = new HashMap<String, Object>();
additional.put("Name", complexTypeName);
ODataCommon.checkResponseBody(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename2, -1);
}
}
/**
* Propertyから参照されているComplexTypeのNameを変更した場合に409になること.
*/
@Test
public final void Propertyから参照されているComplexTypeのNameを変更した場合に409になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "testComplexTypeRename";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// Propertyの作成
PropertyUtils.create(BEARER_MASTER_TOKEN, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
Setup.TEST_ENTITYTYPE_M1, "testProperty",
complexTypeName, true, null, Property.COLLECTION_KIND_NONE, false, null, HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_CONFLICT);
res.checkErrorResponse(DcCoreException.OData.CONFLICT_HAS_RELATED.getCode(),
DcCoreException.OData.CONFLICT_HAS_RELATED.getMessage());
} finally {
PropertyUtils.delete(BEARER_MASTER_TOKEN, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
Setup.TEST_ENTITYTYPE_M1, "testProperty", -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
}
}
/**
* 二階層目のComplexTypePropertyから参照されているComplexTypeのNameを変更した場合に409になること.
*/
@Test
public final void 二階層目のComplexTypePropertyから参照されているComplexTypeのNameを変更した場合に409になること() {
String complex1st = "1stComplex";
String complex2nd = "2ndComplex";
String cell = Setup.TEST_CELL1;
String box = Setup.TEST_BOX1;
String col = Setup.TEST_ODATA;
String token = AbstractCase.MASTER_TOKEN_NAME;
String btoken = AbstractCase.BEARER_MASTER_TOKEN;
try {
EntityTypeUtils.create(cell, token, box, col, "testEntity", HttpStatus.SC_CREATED);
ComplexTypeUtils.create(cell, box, col, complex1st, HttpStatus.SC_CREATED);
ComplexTypeUtils.create(cell, box, col, complex2nd, HttpStatus.SC_CREATED);
PropertyUtils.create(btoken, cell, box, col, "testEntity", "property",
complex1st, true, null, "None", false, null, HttpStatus.SC_CREATED);
ComplexTypePropertyUtils.create(cell, box, col, "1stProp", complex1st, complex2nd, HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(token, cell, box, col,
complex2nd, complex2nd, HttpStatus.SC_CONFLICT);
res.checkErrorResponse(DcCoreException.OData.CONFLICT_HAS_RELATED.getCode(),
DcCoreException.OData.CONFLICT_HAS_RELATED.getMessage());
} finally {
ComplexTypePropertyUtils.delete(cell, box, col, "1stProp", complex1st, -1);
PropertyUtils.delete(btoken, cell, box, col, "testEntity", "property", -1);
ComplexTypeUtils.delete(token, cell, box, col, complex1st, -1);
ComplexTypeUtils.delete(token, cell, box, col, complex2nd, -1);
EntityTypeUtils.delete(col, token, MediaType.APPLICATION_JSON, "testEntity", cell, -1);
}
}
/**
* 最下層のComplexTypePropertyから参照されているComplexTypeのNameを変更した場合に409になること.
*/
@Test
public final void 最下層のComplexTypePropertyから参照されているComplexTypeのNameを変更した場合に409になること() {
String complex1st = "1stComplex";
String complex2nd = "2ndComplex";
String complex3rd = "3rdComplex";
String cell = Setup.TEST_CELL1;
String box = Setup.TEST_BOX1;
String col = Setup.TEST_ODATA;
String token = AbstractCase.MASTER_TOKEN_NAME;
String btoken = AbstractCase.BEARER_MASTER_TOKEN;
try {
EntityTypeUtils.create(cell, token, box, col, "testEntity", HttpStatus.SC_CREATED);
ComplexTypeUtils.create(cell, box, col, complex1st, HttpStatus.SC_CREATED);
ComplexTypeUtils.create(cell, box, col, complex2nd, HttpStatus.SC_CREATED);
ComplexTypeUtils.create(cell, box, col, complex3rd, HttpStatus.SC_CREATED);
PropertyUtils.create(btoken, cell, box, col, "testEntity", "property", complex1st,
true, null, "None", false, null, HttpStatus.SC_CREATED);
ComplexTypePropertyUtils.create(cell, box, col, "1stProp", complex1st, complex2nd, HttpStatus.SC_CREATED);
ComplexTypePropertyUtils.create(cell, box, col, "2ndProp", complex2nd, complex3rd, HttpStatus.SC_CREATED);
ComplexTypePropertyUtils.create(cell, box, col, "3rdProp", complex3rd, "Edm.String", HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(token, cell, box, col,
complex3rd, complex3rd, HttpStatus.SC_CONFLICT);
res.checkErrorResponse(DcCoreException.OData.CONFLICT_HAS_RELATED.getCode(),
DcCoreException.OData.CONFLICT_HAS_RELATED.getMessage());
} finally {
ComplexTypePropertyUtils.delete(cell, box, col, "3rdProp", complex3rd, -1);
ComplexTypePropertyUtils.delete(cell, box, col, "2ndProp", complex2nd, -1);
ComplexTypePropertyUtils.delete(cell, box, col, "1stProp", complex1st, -1);
PropertyUtils.delete(btoken, cell, box, col, "testEntity", "property", -1);
ComplexTypeUtils.delete(token, cell, box, col, complex3rd, -1);
ComplexTypeUtils.delete(token, cell, box, col, complex2nd, -1);
ComplexTypeUtils.delete(token, cell, box, col, complex1st, -1);
EntityTypeUtils.delete(col, token, MediaType.APPLICATION_JSON, "testEntity", cell, -1);
}
}
/**
* 同じ名前でComplexType名を変更できること.
*/
@Test
public final void 同じ名前でComplexType名を変更できること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "testComplexType";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// 変名
ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, complexTypeRename, HttpStatus.SC_NO_CONTENT);
// 変名後のComplexTypeを取得できること
TResponse res = ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA,
complexTypeRename, HttpStatus.SC_OK);
Map<String, Object> additional = new HashMap<String, Object>();
additional.put("Name", complexTypeRename);
ODataCommon.checkResponseBody(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
}
}
/**
* 変名後のComplexTypeが存在する場合409になること.
*/
@Test
public final void 変名後のComplexTypeが存在する場合409になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "testComplexType2";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeRename,
HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_CONFLICT);
res.checkErrorResponse(DcCoreException.OData.ENTITY_ALREADY_EXISTS.getCode(),
DcCoreException.OData.ENTITY_ALREADY_EXISTS.getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
}
}
/**
* ComplexTypeの更新時Nameが指定されていない場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameが指定されていない場合400になること() {
String complexTypeName = "testComplexType";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新(400になること)
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, new JSONObject(), HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.INPUT_REQUIRED_FIELD_MISSING.getCode(),
DcCoreException.OData.INPUT_REQUIRED_FIELD_MISSING.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* 存在しないComplexTypeを指定して更新した場合404になること.
*/
@Test
public final void 存在しないComplexTypeを指定して更新した場合404になること() {
String complexTypeName = "testComplexType";
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeName, HttpStatus.SC_NOT_FOUND);
res.checkErrorResponse(DcCoreException.OData.NO_SUCH_ENTITY.getCode(),
DcCoreException.OData.NO_SUCH_ENTITY.getMessage());
}
/**
* ComplexTypeの更新時Nameにアンダーバー始まりの文字列を指定した場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameにアンダーバー始まりの文字列を指定した場合400になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "_testComplexType";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* ComplexTypeの更新時Nameにスラッシュを含む文字列を指定した場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameにスラッシュを含む文字列を指定した場合400になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "test/ComplexType";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* ComplexTypeの更新時Nameにハイフン始まりの文字列を指定した場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameにハイフン始まりの文字列を指定した場合400になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "-testComplexType";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* ComplexTypeの更新時Nameに空文字を指定した場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameに空文字を指定した場合400になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* ComplexTypeの更新時Nameに指定可能な文字数の最小値を指定した場合204になること.
*/
@Test
public final void ComplexTypeの更新時Nameに指定可能な文字数の最小値を指定した場合204になること() {
String complexTypeName = "testComplexType";
String complexTypeRename = "1";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_NO_CONTENT);
// 変名後のComplexTypeを取得できること
res = ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA,
complexTypeRename, HttpStatus.SC_OK);
Map<String, Object> additional = new HashMap<String, Object>();
additional.put("Name", complexTypeRename);
ODataCommon.checkResponseBody(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
// 変更前の名前でComplexTypeを取得できないこと
ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, HttpStatus.SC_NOT_FOUND);
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
}
}
/**
* ComplexTypeの更新時Nameに指定可能な文字数の最大値をオーバーした場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameに指定可能な文字数の最大値をオーバーした場合400になること() {
String complexTypeName = "testDataEntityName";
String complexTypeRename = "1234567890123456789012345678901234567890123456789012345678901234567890"
+ "1234567890123456789012345678901234567890123456789012345678x";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
/**
* ComplexTypeの更新時Nameに指定可能な文字数の最大値を指定した場合204になること.
*/
@Test
public final void ComplexTypeの更新時Nameに指定可能な文字数の最大値を指定した場合204になること() {
String complexTypeName = "testDataEntityName";
String complexTypeRename = "1234567890123456789012345678901234567890123456789012345678901234567890"
+ "123456789012345678901234567890123456789012345678901234567x";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// 変名
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_NO_CONTENT);
// 変名後のComplexTypeを取得できること
res = ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA,
complexTypeRename, HttpStatus.SC_OK);
Map<String, Object> additional = new HashMap<String, Object>();
additional.put("Name", complexTypeRename);
ODataCommon.checkResponseBody(res.bodyAsJson(), null, ComplexTypeUtils.NAMESPACE, additional);
// 変更前の名前でComplexTypeを取得できないこと
ComplexTypeUtils.get(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, HttpStatus.SC_NOT_FOUND);
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeRename, -1);
}
}
/**
* ComplexTypeの更新時Nameに日本語を指定した場合400になること.
*/
@Test
public final void ComplexTypeの更新時Nameに日本語を指定した場合400になること() {
String complexTypeName = "testDataEntityName";
String complexTypeRename = "日本語";
try {
// ComplexTypeの作成
ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA, complexTypeName,
HttpStatus.SC_CREATED);
// ComplexTypeの更新
TResponse res = ComplexTypeUtils.update(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1,
Setup.TEST_ODATA, complexTypeName, complexTypeRename, HttpStatus.SC_BAD_REQUEST);
res.checkErrorResponse(DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
DcCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params("Name").getMessage());
} finally {
ComplexTypeUtils.delete(MASTER_TOKEN_NAME, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
complexTypeName, -1);
}
}
}