/* * Copyright (c) 2007 NTT DATA Corporation * * 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 jp.terasoluna.fw.beans; import uk.org.lidalia.slf4jtest.TestLogger; import uk.org.lidalia.slf4jtest.TestLoggerFactory; import static uk.org.lidalia.slf4jtest.LoggingEvent.error; import static java.util.Arrays.asList; import static org.hamcrest.core.Is.*; import static org.junit.Assert.*; import org.junit.After; import org.junit.Test; /** * {@link jp.terasoluna.fw.beans.JXPathIndexedBeanWrapperImpl} クラスのブラックボックステスト。 * <p> * <h4>【クラスの概要】</h4> JavaBeanの配列・コレクション型属性にアクセスできるクラス。<br> * 前提条件:<br> * 「toXPath」メソッドの引数にはnullは入らない。<br> * 「extractIncrementIndex(String)」メソッドの引数にはnullは入らない。<br> * 「extractIncrementIndex(String,int)」メソッドの第1引数にはnullは入らない。<br> * 「extractIncrementIndex(String,int)」メソッドの第2引数には1か-1しか入らない。<br> * 「extractIndex」メソッドの引数にはnullは入らない。<br> * 「escapeMapProperty」メソッドの引数にはnullは入らない。<br> * 「extractMapPropertyName」メソッドの引数にはnullは入らない。<br> * 「extractMapPropertyKey」メソッドの引数にはnullは入らない。<br> * 「isMapProperty」メソッドの引数にはnullは入らない。 * <p> * @see jp.terasoluna.fw.beans.JXPathIndexedBeanWrapperImpl */ public class JXPathIndexedBeanWrapperImplTest02 { private TestLogger logger = TestLoggerFactory.getTestLogger( JXPathIndexedBeanWrapperImpl.class); /** * 終了処理を行う。 */ @After public void tearDown() { logger.clear(); } /** * testToXPath01() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) property:""(空文字)<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Property name is null or blank.<br> * (状態変化) ログ:ログレベル:エラー<br> * Property name is null or blank.<br> * <br> * 【空文字のテスト】<br> * 引数のpropertyが空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = ""; // テスト実施 try { test.toXPath(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Property name is null or blank.", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Property name is null or blank.")))); } } /** * testToXPath02() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"."<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Property name is null or blank.<br> * (状態変化) ログ:ログレベル:エラー<br> * Property name is null or blank.<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"."のみのパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "."; // テスト実施 try { test.toXPath(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Property name is null or blank.", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Property name is null or blank.")))); } } /** * testToXPath03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (状態) isMapProperty:falseを返す。<br> * (状態) extractAttributeName:property+"Attribute"を返す。<br> * (状態) extractIncrementIndex:"[3]"を返す。<br> * <br> * 期待値:(戻り値) String:/abcAttribute[3]<br> * (状態変化) isMapProperty:引数"abc"が渡されたことを確認する。<br> * (状態変化) extractAttributeName:当メソッドは引数(property="abc")で戻り値property+"Attribute"とする。<br> * (状態変化) extractIncrementIndex:引数"abc"が渡されたことを確認する。<br> * <br> * 【JavaBean or Primitiveのテスト】<br> * for文1回実行の場合。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "abc"; // 前提(スタブ)設定 test.isMapPropertyResult = false; test.extractIncrementIndexResult = "[3]"; // テスト実施 String result = test.toXPath(property); // 判定 assertEquals("abc", test.isMapPropertyParam1); assertEquals("abc", test.extractIncrementIndexParam1); assertEquals("/abcAttribute[3]", result); } /** * testToXPath04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc.def.ghi"<br> * (状態) isMapProperty:falseを返す。<br> * (状態) extractAttributeName:property+"Attribute"を返す。<br> * (状態) extractIncrementIndex:""を返す。<br> * <br> * 期待値:(戻り値) String:/abcAttribute/defAttribute/ghiAttribute<br> * (状態変化) isMapProperty:引数"ghi"が渡されたことを確認する。<br> * (状態変化) extractAttributeName:当メソッドは引数(property="abc")で戻り値property+"Attribute"とする。<br> * (状態変化) extractIncrementIndex:引数"ghi"が渡されたことを確認する。<br> * <br> * 【JavaBean or Primitiveのテスト】<br> * for文複数回実行の場合。<br> * (引数のpropertyに"."を含む文字列のパターン) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath04() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "abc.def.ghi"; // 前提(スタブ)設定 test.isMapPropertyResult = false; test.extractIncrementIndexResult = ""; // テスト実施 String result = test.toXPath(property); // 判定 assertEquals("ghi", test.isMapPropertyParam1); assertEquals("ghi", test.extractIncrementIndexParam1); assertEquals("/abcAttribute/defAttribute/ghiAttribute", result); } /** * testToXPath05() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (状態) isMapProperty:trueを返す。<br> * (状態) escapeMapProperty:property+"[@name='key']"を返す。<br> * (状態) extractIncrementIndex:"[3]"を返す。<br> * <br> * 期待値:(戻り値) String:/abc[@name='key'][3]<br> * (状態変化) isMapProperty:引数"abc"が渡されたことを確認する。<br> * (状態変化) escapeMapProperty:当メソッドは引数(property="abc")で戻り値property+"[@name='key']"とする。<br> * (状態変化) extractIncrementIndex:引数"abc"が渡されたことを確認する。<br> * <br> * 【Mapのテスト】<br> * for文1回実行の場合。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath05() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "abc"; // 前提(スタブ)設定 test.isMapPropertyResult = true; test.extractIncrementIndexResult = "[3]"; // テスト実施 String result = test.toXPath(property); // 判定 assertEquals("abc", test.isMapPropertyParam1); assertEquals("abc", test.extractIncrementIndexParam1); assertEquals("/abc[@name='key'][3]", result); } /** * testToXPath06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc.def..ghi"<br> * (状態) isMapProperty:trueを返す。<br> * (状態) escapeMapProperty:property+"[@name='key']"を返す。<br> * (状態) extractIncrementIndex:""を返す。<br> * <br> * 期待値:(戻り値) String:/abc[@name='key']/def[@name='key']/ghi[@name='key']<br> * (状態変化) isMapProperty:引数"ghi"が渡されたことを確認する。<br> * (状態変化) escapeMapProperty:当メソッドは引数(property="abc")で戻り値property+"[@name='key']"とする。<br> * (状態変化) extractIncrementIndex:引数"ghi"が渡されたことを確認する。<br> * <br> * 【Mapのテスト】<br> * for文複数回実行の場合。<br> * (引数のpropertyに".."を含む文字列のパターン) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath06() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "abc.def..ghi"; // 前提(スタブ)設定 test.isMapPropertyResult = true; test.extractIncrementIndexResult = ""; // テスト実施 String result = test.toXPath(property); // 判定 assertEquals("ghi", test.isMapPropertyParam1); assertEquals("ghi", test.extractIncrementIndexParam1); assertEquals("/abc[@name='key']/def[@name='key']/ghi[@name='key']", result); } /** * testToXPath07() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc.def..ghi"<br> * (状態) isMapProperty:falseを返す。<br> * (状態) extractAttributeName:property+"Attribute"を返す。<br> * (状態) extractIncrementIndex:""を返す。<br> * <br> * 期待値:(戻り値) String:/abcAttribute/defAttribute/ghiAttribute<br> * (状態変化) isMapProperty:引数"ghi"が渡されたことを確認する。<br> * (状態変化) extractAttributeName:当メソッドは引数(property="abc")で戻り値property+"Attribute"とする。<br> * (状態変化) extractIncrementIndex:引数"ghi"が渡されたことを確認する。<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyに".."("."2回連続)を含む文字列のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToXPath07() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub03 test = new JXPathIndexedBeanWrapperImplStub03(object); // 入力値設定 String property = "abc.def..ghi"; // 前提(スタブ)設定 test.isMapPropertyResult = false; test.extractIncrementIndexResult = ""; // テスト実施 String result = test.toXPath(property); // 判定 assertEquals("ghi", test.isMapPropertyParam1); assertEquals("ghi", test.extractIncrementIndexParam1); assertEquals("/abcAttribute/defAttribute/ghiAttribute", result); } /** * testExtractIncrementIndexString01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (状態) extractIncremantIndex(String,int):「property+":"+increment」を返す。<br> * <br> * 期待値:(戻り値) Object:"abc:1"<br> * (状態変化) extractIncremantIndex(String,int):当メソッドは引数(property="abc",increment=1)で戻り値property+":"+incrementとする。<br> * <br> * 【extractIncremantIndex(String,int) 呼び出しのテスト】 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIncrementIndexString01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub02 test = new JXPathIndexedBeanWrapperImplStub02(object); // 入力値設定 String property = "abc"; // テスト実施 String result = test.extractIncrementIndex(property); // 判定 assertEquals("abc:1", result); } /** * testExtractIncremantIndexStringint01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (引数) increment:1<br> * (状態) extractIndex:""を返す。<br> * <br> * 期待値:(戻り値) String:""<br> * (状態変化) extractIndex:引数"abc"が渡されたことを確認する。<br> * <br> * 【文字列のテスト】<br> * incrementが1で<br> * extractIndexが""を返すパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIncremantIndexStringint01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値 String property = "abc"; int increment = 1; // 前提(スタブ) test.extractIndexResult = ""; // テスト実施 String result = test.extractIncrementIndex(property, increment); // 判定 assertEquals("abc", test.extractIndexParam1); assertEquals("", result); } /** * testExtractIncremantIndexStringint02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (引数) increment:1<br> * (状態) extractIndex:"2"を返す。<br> * <br> * 期待値:(戻り値) String:"[3]"<br> * (状態変化) extractIndex:引数"abc"が渡されたことを確認する。<br> * <br> * 【文字列のテスト】<br> * incrementが1で<br> * extractIndexが"2"を返すパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIncremantIndexStringint02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値 String property = "abc"; int increment = 1; // 前提(スタブ) test.extractIndexResult = "2"; // テスト実施 String result = test.extractIncrementIndex(property, increment); // 判定 assertEquals("abc", test.extractIndexParam1); assertEquals("[3]", result); } /** * testExtractIncremantIndexStringint03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (引数) increment:-1<br> * (状態) extractIndex:"2"を返す。<br> * <br> * 期待値:(戻り値) String:"[1]"<br> * (状態変化) extractIndex:引数"abc"が渡されたことを確認する。<br> * <br> * 【文字列のテスト】<br> * incrementが-1で<br> * extractIndexが"2"を返すパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIncremantIndexStringint03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値 String property = "abc"; int increment = -1; // 前提(スタブ) test.extractIndexResult = "2"; // テスト実施 String result = test.extractIncrementIndex(property, increment); // 判定 assertEquals("abc", test.extractIndexParam1); assertEquals("[1]", result); } /** * testExtractIndex01() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) property:""[空文字]<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * 【空文字のテスト】<br> * 引数のpropertyが空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = ""; // テスト実施 String result = test.extractIndex(property); // 判定 assertEquals("", result); } /** * testExtractIndex02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * 【文字のテスト】<br> * 引数のpropertyに"["または"]"が入っていないパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "abc"; // テスト実施 String result = test.extractIndex(property); // 判定 assertEquals("", result); } /** * testExtractIndex03() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"["<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Index. Invalid property name. '['<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. '['<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが"["のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "["; // テスト実施 try { test.extractIndex(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Index. Invalid property name. '['", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Index. Invalid property name. '['")))); } } /** * testExtractIndex04() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"]"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Index. Invalid property name. ']'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. ']'<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが"]"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex04() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "]"; // テスト実施 try { test.extractIndex(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Index. Invalid property name. ']'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Index. Invalid property name. ']'")))); } } /** * testExtractIndex05() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"]["<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Index. Invalid property name. ']['<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. ']['<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが"]["のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex05() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "]["; // テスト実施 try { test.extractIndex(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Index. Invalid property name. ']['", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Index. Invalid property name. ']['")))); } } /** * testExtractIndex06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"[]"<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"[]"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex06() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "[]"; // テスト実施 String result = test.extractIndex(property); // 判定 assertEquals("", result); } /** * testExtractIndex07() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"ab[c]d[3]"<br> * <br> * 期待値:(戻り値) String:"3"<br> * <br> * 【文字のテスト】<br> * 引数のpropertyに"[]"が二つ入っているパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractIndex07() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "ab[c]d[3]"; // テスト実施 String result = test.extractIndex(property); // 判定 assertEquals("3", result); } /** * testEscapeMapProperty01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * (状態) extractMapPropertyName:property+"Name"を返す。<br> * (状態) extractMapPropertyKey:property+"Key"<br> * <br> * 期待値:(戻り値) String:abcName/abcKey<br> * (状態変化) extractMapPropertyName:当メソッドは引数(property="abc")で戻り値property+"Name"とする。<br> * (状態変化) extractMapPropertyKey:当メソッドは引数(property="abc")で戻り値property+"Key"とする。<br> * <br> * 【メソッドの呼び出しと結果の整形のテスト】 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testEscapeMapProperty01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = "abc"; // テスト実施 String result = test.escapeMapProperty(property); // 判定 assertEquals("abcName/abcKey", result); } /** * testExtractMapPropertyName01() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) property:""(空文字)<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map attribute. Invalid property name. ''<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map attribute. Invalid property name. ''<br> * <br> * 【空文字のテスト】<br> * 引数のpropertyが空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyName01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = ""; // テスト実施 try { test.extractMapPropertyName(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map attribute. Invalid property name. ''", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map attribute. Invalid property name. ''")))); } } /** * testExtractMapPropertyName02() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map attribute. Invalid property name. 'abc'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map attribute. Invalid property name. 'abc'<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyに"("または")"が入っていないパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyName02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "abc"; // テスト実施 try { test.extractMapPropertyName(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals( "Cannot get Map attribute. Invalid property name. 'abc'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map attribute. Invalid property name. 'abc'")))); } } /** * testExtractMapPropertyName03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"("<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"("のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyName03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値設定 String property = "("; // テスト実施 String result = test.extractMapPropertyName(property); // 判定 assertEquals("", result); } /** * testExtractMapPropertyName04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"ab()"<br> * <br> * 期待値:(戻り値) String:"ab"<br> * <br> * 【文字のテスト】<br> * 引数のpropertyの"()"の前にだけ文字が入っているパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyName04() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値設定 String property = "ab()"; // テスト実施 String result = test.extractMapPropertyName(property); // 判定 assertEquals("ab", result); } /** * testExtractMapPropertyKey01() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) property:""(空文字)<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map key. Invalid property name. ''<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. ''<br> * <br> * 【空文字のテスト】<br> * 引数のpropertyが空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = ""; // テスト実施 try { test.extractMapPropertyKey(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. ''", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. ''")))); } } /** * testExtractMapPropertyKey02() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map key. Invalid property name. 'abc'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. 'abc'<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyに"("または")"が入っていないパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "abc"; // テスト実施 try { test.extractMapPropertyKey(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. 'abc'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. 'abc'")))); } } /** * testExtractMapPropertyKey03() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"("<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map key. Invalid property name. '('<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. '('<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが"("のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = "("; // テスト実施 try { test.extractMapPropertyKey(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. '('", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. '('")))); } } /** * testExtractMapPropertyKey04() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:")"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map key. Invalid property name. ')'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. ')'<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが")"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey04() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = ")"; // テスト実施 try { test.extractMapPropertyKey(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. ')'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. ')'")))); } } /** * testExtractMapPropertyKey05() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:")("<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Map key. Invalid property name. ')('<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. ')('<br> * <br> * 【不正文字のテスト】<br> * 引数のpropertyが")("のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey05() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値 String property = ")("; // テスト実施 try { test.extractMapPropertyKey(property); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. ')('", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. ')('")))); } } /** * testExtractMapPropertyKey06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"()"<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"()"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey06() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値設定 String property = "()"; // テスト実施 String result = test.extractMapPropertyKey(property); // 判定 assertEquals("", result); } /** * testExtractMapPropertyKey07() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"ab(cd)e"<br> * <br> * 期待値:(戻り値) String:"cd"<br> * <br> * 【文字のテスト】<br> * 引数のpropertyの"("と")"の前後に文字が入っているパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapPropertyKey07() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImpl test = new JXPathIndexedBeanWrapperImpl(object); // 入力値設定 String property = "ab(cd)e"; // テスト実施 String result = test.extractMapPropertyKey(property); // 判定 assertEquals("cd", result); } /** * testIsMapProperty01() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) property:""(空文字)<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * 【空文字のテスト】<br> * 引数のpropertyが空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty01() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = ""; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertFalse(result); } /** * testIsMapProperty02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"abc"<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * 【文字のテスト】<br> * 引数のpropertyに"("または")"が入っていないパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty02() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = "abc"; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertFalse(result); } /** * testIsMapProperty03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"("<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"("のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty03() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = "("; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertFalse(result); } /** * testIsMapProperty04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:")"<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが")"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty04() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = ")"; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertFalse(result); } /** * testIsMapProperty05() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:")("<br> * <br> * 期待値:(戻り値) boolean:true<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが")("のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty05() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = ")("; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertTrue(result); } /** * testIsMapProperty06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) property:"()"<br> * <br> * 期待値:(戻り値) boolean:true<br> * <br> * 【文字のテスト】<br> * 引数のpropertyが"()"のパターンのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapProperty06() throws Exception { // 前処理 Object object = new Object(); JXPathIndexedBeanWrapperImplStub01 test = new JXPathIndexedBeanWrapperImplStub01(object); // 入力値設定 String property = "()"; // テスト実施 boolean result = test.isMapProperty(property); // 判定 assertTrue(result); } }