/** * 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.unit.core.rs.odata.validate; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.experimental.categories.Category; import org.odata4j.core.OProperties; import org.odata4j.core.OProperty; import org.odata4j.edm.EdmSimpleType; import com.fujitsu.dc.core.DcCoreException; import com.fujitsu.dc.core.model.ctl.ReceivedMessage; import com.fujitsu.dc.core.rs.cell.MessageODataResource; import com.fujitsu.dc.core.rs.odata.AbstractODataResource; import com.fujitsu.dc.test.categories.Unit; import com.fujitsu.dc.test.jersey.AbstractCase; /** * Messageバリデートテスト. */ @Category({ Unit.class }) public class ReceivedMessageValidateTest extends AbstractODataResource { /** * コンストラクタ. */ public ReceivedMessageValidateTest() { } /** * idが31文字の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void idが31文字の場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_ID.build(), ReceivedMessage.P_ID.getName(), OProperties.string(ReceivedMessage.P_ID.getName(), "1234567890123456789012345678901")); } /** * idが32文字の場合にDcCoreExceptionが発生しないこと. */ @Test public final void idが32文字の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_ID.build(), ReceivedMessage.P_ID.getName(), OProperties.string(ReceivedMessage.P_ID.getName(), "12345678901234567890123456789012")); } /** * idが33文字の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void idが33文字の場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_ID.build(), ReceivedMessage.P_ID.getName(), OProperties.string(ReceivedMessage.P_ID.getName(), "123456789012345678901234567890123")); } /** * idがNullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void idがNullの場合にDcCoreExceptionが発生すること() { this.setDefaultValue(ReceivedMessage.P_ID.build(), ReceivedMessage.P_ID.getName(), OProperties.string(ReceivedMessage.P_ID.getName(), "")); } /** * InReplyToが31文字の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void InReplyToが31文字の場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_IN_REPLY_TO.build(), ReceivedMessage.P_IN_REPLY_TO.getName(), OProperties.string(ReceivedMessage.P_IN_REPLY_TO.getName(), "1234567890123456789012345678901")); } /** * InReplyToが32文字の場合にDcCoreExceptionが発生しないこと. */ @Test public final void InReplyToが32文字の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_IN_REPLY_TO.build(), ReceivedMessage.P_IN_REPLY_TO.getName(), OProperties.string(ReceivedMessage.P_IN_REPLY_TO.getName(), "12345678901234567890123456789012")); } /** * InReplyToが33文字の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void InReplyToが33文字の場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_IN_REPLY_TO.build(), ReceivedMessage.P_IN_REPLY_TO.getName(), OProperties.string(ReceivedMessage.P_IN_REPLY_TO.getName(), "123456789012345678901234567890123")); } /** * InReplyToがNullの場合にNullOPropertyが返却されること. */ @Test public final void InReplyToがNullの場合にNullOPropertyが返却されること() { OProperty<?> expected = OProperties.null_(ReceivedMessage.P_IN_REPLY_TO.getName(), EdmSimpleType.STRING); OProperty<?> result = this.setDefaultValue(ReceivedMessage.P_IN_REPLY_TO.build(), ReceivedMessage.P_IN_REPLY_TO.getName(), OProperties.string(ReceivedMessage.P_IN_REPLY_TO.getName(), "")); assertEquals(expected.getValue(), result.getValue()); } /** * FromがURL形式の場合にDcCoreExceptionが発生しないこと. */ @Test public final void FromがURL形式の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_FROM.build(), ReceivedMessage.P_FROM.getName(), OProperties.string(ReceivedMessage.P_FROM.getName(), "http://example.com/test")); } /** * FromがURL形式でない場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void FromがURL形式でない場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_FROM.build(), ReceivedMessage.P_FROM.getName(), OProperties.string(ReceivedMessage.P_FROM.getName(), "ftp://example.com/test")); } /** * FromがNullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void FromがNullの場合にDcCoreExceptionが発生すること() { this.setDefaultValue(ReceivedMessage.P_FROM.build(), ReceivedMessage.P_FROM.getName(), OProperties.string(ReceivedMessage.P_FROM.getName(), "")); } /** * Typeがmessageの場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがmessageの場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_TYPE.build(), ReceivedMessage.P_TYPE.getName(), OProperties.string(ReceivedMessage.P_TYPE.getName(), "message")); } /** * Typeがreq.relation.buildの場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがreq_relation_buildeの場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_TYPE.build(), ReceivedMessage.P_TYPE.getName(), OProperties.string(ReceivedMessage.P_TYPE.getName(), "req.relation.build")); } /** * Typeがreq.relation.breakの場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがreq_relation_breakの場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_TYPE.build(), ReceivedMessage.P_TYPE.getName(), OProperties.string(ReceivedMessage.P_TYPE.getName(), "req.relation.break")); } /** * Typeがsocial_messageの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがsocial_messageの場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_TYPE.build(), ReceivedMessage.P_TYPE.getName(), OProperties.string(ReceivedMessage.P_TYPE.getName(), "social.message")); } /** * Typeがnullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがnullの場合にDcCoreExceptionが発生すること() { this.setDefaultValue(ReceivedMessage.P_TYPE.build(), ReceivedMessage.P_TYPE.getName(), OProperties.string(ReceivedMessage.P_TYPE.getName(), "")); } /** * Titleが0文字の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Titleが0文字の場合にDcCoreExceptionが発生しないこと() { this.validateProperty( ReceivedMessage.P_TITLE.build(), ReceivedMessage.P_TITLE.getName(), OProperties.string(ReceivedMessage.P_TITLE.getName(), "")); } /** * Titleが256文字の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Titleが256文字の場合にDcCoreExceptionが発生しないこと() { this.validateProperty( ReceivedMessage.P_TITLE.build(), ReceivedMessage.P_TITLE.getName(), OProperties.string(ReceivedMessage.P_TITLE.getName(), AbstractCase.STRING_LENGTH_128 + AbstractCase.STRING_LENGTH_128)); } /** * Titleが257文字の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Titleが257文字の場合にDcCoreExceptionが発生すること() { this.validateProperty( ReceivedMessage.P_TITLE.build(), ReceivedMessage.P_TITLE.getName(), OProperties.string(ReceivedMessage.P_TITLE.getName(), AbstractCase.STRING_LENGTH_128 + AbstractCase.STRING_LENGTH_129)); } /** * Titleがnullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Titleがnullの場合にDcCoreExceptionが発生すること() { this.setDefaultValue(ReceivedMessage.P_TITLE.build(), ReceivedMessage.P_TITLE.getName(), OProperties.string(ReceivedMessage.P_TITLE.getName(), "")); } /** * Priorityが0の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Priorityが0の場合にDcCoreExceptionが発生すること() { this.validateProperty( ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 0)); } /** * Priorityが1の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Priorityが1の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 1)); } /** * Priorityが2の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Priorityが2の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 2)); } /** * Priorityが3の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Priorityが3の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 3)); } /** * Priorityが4の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Priorityが4の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 4)); } /** * Priorityが5の場合にDcCoreExceptionが発生しないこと. */ @Test public final void Priorityが5の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 5)); } /** * Priorityが6の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Priorityが6の場合にDcCoreExceptionが発生すること() { this.validateProperty( ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.int32(ReceivedMessage.P_PRIORITY.getName(), 6)); } /** * Priorityがnullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Priorityがnullの場合にDcCoreExceptionが発生すること() { this.setDefaultValue(ReceivedMessage.P_PRIORITY.build(), ReceivedMessage.P_PRIORITY.getName(), OProperties.string(ReceivedMessage.P_PRIORITY.getName(), "")); } /** * RequestRelationがURL形式の場合にDcCoreExceptionが発生しないこと. */ @Test public final void RequestRelationがURL形式の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_REQUEST_RELATION.build(), ReceivedMessage.P_REQUEST_RELATION.getName(), OProperties.string(ReceivedMessage.P_REQUEST_RELATION.getName(), "http://example.com/test")); } /** * RequestRelationがURL形式でない場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void RequestRelationがURL形式でない場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_REQUEST_RELATION.build(), ReceivedMessage.P_REQUEST_RELATION.getName(), OProperties.string(ReceivedMessage.P_REQUEST_RELATION.getName(), "ftp://example.com/test")); } /** * RequestRelationがNullの場合にNullOPropertyが返却されること. */ @Test public final void RequestRelationがNullの場合にNullOPropertyが返却されること() { OProperty<?> expected = OProperties.null_(ReceivedMessage.P_REQUEST_RELATION.getName(), EdmSimpleType.STRING); OProperty<?> result = this.setDefaultValue(ReceivedMessage.P_REQUEST_RELATION.build(), ReceivedMessage.P_REQUEST_RELATION.getName(), OProperties.string(ReceivedMessage.P_REQUEST_RELATION.getName(), AbstractCase.STRING_LENGTH_129)); assertEquals(expected.getValue(), result.getValue()); } /** * RequestRelationTargetがURL形式の場合にDcCoreExceptionが発生しないこと. */ @Test public final void RequestRelationTargetがURL形式の場合にDcCoreExceptionが発生しないこと() { this.validateProperty(ReceivedMessage.P_REQUEST_RELATION_TARGET.build(), ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), OProperties.string(ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), "http://example.com/test")); } /** * RequestRelationTargetがURL形式でない場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void RequestRelationTargetがURL形式でない場合にDcCoreExceptionが発生すること() { this.validateProperty(ReceivedMessage.P_REQUEST_RELATION_TARGET.build(), ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), OProperties.string(ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), "ftp://example.com/test")); } /** * RequestRelationTargetがNullの場合にNullOPropertyが返却されること. */ @Test public final void RequestRelationTargetがNullの場合にNullOPropertyが返却されること() { OProperty<?> expected = OProperties.null_(ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), EdmSimpleType.STRING); OProperty<?> result = this.setDefaultValue(ReceivedMessage.P_REQUEST_RELATION_TARGET.build(), ReceivedMessage.P_REQUEST_RELATION_TARGET.getName(), OProperties.string(ReceivedMessage.P_MULTICAST_TO.getName(), AbstractCase.STRING_LENGTH_129)); assertEquals(expected.getValue(), result.getValue()); } /** * MulticastToがURL形式の場合にDcCoreExceptionが発生しないこと. */ @Test public final void MulticastToがURL形式の場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateUriCsv(ReceivedMessage.P_MULTICAST_TO.getName(), "http://example.com/test"); } /** * MulticastToがCSV複数URL形式の場合にDcCoreExceptionが発生しないこと. */ @Test public final void MulticastToがCSV複数URL形式の場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateUriCsv(ReceivedMessage.P_MULTICAST_TO.getName(), "http://example.com/test,http://example.com/test"); } /** * MulticastToがURL形式でない場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void MulticastToがURL形式でない場合にDcCoreExceptionが発生すること() { MessageODataResource.validateUriCsv(ReceivedMessage.P_MULTICAST_TO.getName(), "ftp://example.com/test"); } /** * MulticastToがCSV複数URL形式とURL形式でない場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void MulticastToがCSV複数URL形式とURL形式でない場合にDcCoreExceptionが発生すること() { MessageODataResource.validateUriCsv(ReceivedMessage.P_MULTICAST_TO.getName(), "http://example.com/test,ftp://example.com/test"); } /** * MulticastToが不正なCSV形式の場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void MulticastToが不正なCSV形式の場合にDcCoreExceptionが発生すること() { MessageODataResource.validateUriCsv(ReceivedMessage.P_MULTICAST_TO.getName(), "http://example.com/test,,http://example.com/test"); } /** * MulticastToがNullの場合にNullOPropertyが返却されること. */ @Test public final void MulticastToがNullの場合にNullOPropertyが返却されること() { OProperty<?> expected = OProperties.null_(ReceivedMessage.P_MULTICAST_TO.getName(), EdmSimpleType.STRING); OProperty<?> result = this.setDefaultValue(ReceivedMessage.P_MULTICAST_TO.build(), ReceivedMessage.P_MULTICAST_TO.getName(), OProperties.string(ReceivedMessage.P_MULTICAST_TO.getName(), AbstractCase.STRING_LENGTH_129)); assertEquals(expected.getValue(), result.getValue()); } /** * TypeがmessageでStatusがunreadの場合にDcCoreExceptionが発生しないこと. */ @Test public final void TypeがmessageでStatusがunreadの場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateStatus("message", "unread"); } /** * TypeがmessageでStatusがnoneの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void TypeがmessageでStatusがnoneの場合にDcCoreExceptionが発生すること() { MessageODataResource.validateStatus("message", "none"); } /** * Typeがreq.relation.buildでStatusがnoneの場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがreq_relation_buildでStatusがnoneの場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateStatus("req.relation.build", "none"); } /** * Typeがreq.relation.breakでStatusがnoneの場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがreq_relation_breakでStatusがnoneの場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateStatus("req.relation.break", "none"); } /** * Typeがreq.relation.buildでStatusがunreadの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがreq_relation_buildでStatusがunreadの場合にDcCoreExceptionが発生すること() { MessageODataResource.validateStatus("req.relation.build", "unread"); } /** * Typeがreq.relation.breakでStatusがunreadの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがreq_relation_breakでStatusがunreadの場合にDcCoreExceptionが発生すること() { MessageODataResource.validateStatus("req.relation.break", "unread"); } /** * Typeがreq.relation.breakでRequestRelationとRequestRelationTargetの指定がある場合にDcCoreExceptionが発生しないこと. */ @Test public final void Typeがreq_relation_breakでRequestRelationとRequestRelationTargetの指定がある場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateReqRelation("req.relation.break", "http://xxx.com/xx", "http://xxx.com/xx"); } /** * Typeがreq.relation.breakでRequestRelationがnullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがreq_relation_breakでRequestRelationがnullの場合にDcCoreExceptionが発生すること() { MessageODataResource.validateReqRelation("req.relation.break", null, "http://example.com/test"); } /** * Typeがreq.relation.breakでRequestRelationTargetがnullの場合にDcCoreExceptionが発生すること. */ @Test(expected = DcCoreException.class) public final void Typeがreq_relation_breakでRequestRelationTargetがnullの場合にDcCoreExceptionが発生すること() { MessageODataResource.validateReqRelation("req.relation.break", "http://example.com/test", null); } /** * TypeがmessageでRequestRelationがnullの場合にDcCoreExceptionが発生しないこと. */ @Test public final void TypeがmessageでRequestRelationがnullの場合にDcCoreExceptionが発生しないこと() { MessageODataResource.validateReqRelation("message", null, "http://example.com/test"); } }