/* * 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> * 当クラスのprotectedメソッドの引数nodeは not null である。 * <p> * @see jp.terasoluna.fw.beans.JXPathIndexedBeanWrapperImpl */ public class JXPathIndexedBeanWrapperImplTest03 { private TestLogger logger = TestLoggerFactory.getTestLogger( JXPathIndexedBeanWrapperImpl.class); /** * 終了処理を行う。 */ @After public void tearDown() { logger.clear(); } /** * testToPropertyName01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:".[@name='bbb']"<br> * (状態) スタブisMapObject()の戻り値:true<br> * (状態) スタブextractMapKey()の戻り値:"bbb"<br> * (状態) スタブextractDecrementIndex()の戻り値:""<br> * <br> * 期待値:(戻り値) String:"bbb"<br> * (状態変化) isMapObject()の引数:".[@name='bbb']"<br> * (状態変化) extractMapKey()の引数:".[@name='bbb']"<br> * (状態変化) extractDecrementIndex()の引数:".[@name='bbb']"<br> * <br> * 【Map型・階層なしの試験】<br> * 想定した入力の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName01() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = true; target.extractDecrementIndexReturnValue = ""; // テスト実施 result = target.toPropertyName(".[@name='bbb']"); // 判定 assertEquals("bbb", result); assertEquals(".[@name='bbb']", target.isMapObjectArg1.get(0)); assertEquals(".[@name='bbb']", target.extractMapKeyArg1.get(0)); assertEquals(".[@name='bbb']", target.extractDecrementIndexArg1.get(0)); } /** * testToPropertyName02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:"aaa[@name='bbb']"<br> * (状態) スタブisMapObject()の戻り値:false<br> * (状態) スタブextractMapKey()の戻り値:"bbb"<br> * (状態) スタブisMapAttribute()の戻り値:true<br> * (状態) スタブextractMapAttributeName()の戻り値:"aaa"<br> * (状態) スタブextractDecrementIndex()の戻り値:""<br> * <br> * 期待値:(戻り値) String:"aaa(bbb)"<br> * (状態変化) isMapObject()の引数:"aaa[@name='bbb']"<br> * (状態変化) extractMapKey()の引数:"aaa[@name='bbb']"<br> * (状態変化) isMapAttribute()の引数:"aaa[@name='bbb']"<br> * (状態変化) extractMapAttributeName()の引数:"aaa[@name='bbb']"<br> * (状態変化) extractDecrementIndex()の引数:"aaa[@name='bbb']"<br> * <br> * 【Map属性・階層なしの試験】<br> * 想定した入力の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName02() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = false; target.isMapAttributeReturnValue = true; target.extractDecrementIndexReturnValue = ""; // テスト実施 result = target.toPropertyName("aaa[@name='bbb']"); // 判定 assertEquals("aaa(bbb)", result); assertEquals("aaa[@name='bbb']", target.isMapObjectArg1.get(0)); assertEquals("aaa[@name='bbb']", target.extractMapKeyArg1.get(0)); assertEquals("aaa[@name='bbb']", target.isMapAttributeArg1.get(0)); assertEquals("aaa[@name='bbb']", target.extractMapAttributeNameArg1.get( 0)); assertEquals("aaa[@name='bbb']", target.extractDecrementIndexArg1.get( 0)); } /** * testToPropertyName03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:"aaa[@name='bbb'][10]"<br> * (状態) スタブisMapObject()の戻り値:false<br> * (状態) スタブextractMapKey()の戻り値:"bbb"<br> * (状態) スタブisMapAttribute()の戻り値:true<br> * (状態) スタブextractMapAttributeName()の戻り値:"aaa"<br> * (状態) スタブextractDecrementIndex()の戻り値:"[9]"<br> * <br> * 期待値:(戻り値) String:"aaa(bbb)[9]"<br> * (状態変化) isMapObject()の引数:"aaa[@name='bbb'][10]"<br> * (状態変化) extractMapKey()の引数:"aaa[@name='bbb'][10]"<br> * (状態変化) isMapAttribute()の引数:"aaa[@name='bbb'][10]"<br> * (状態変化) extractMapAttributeName()の引数:"aaa[@name='bbb'][10]"<br> * (状態変化) extractDecrementIndex()の引数:"aaa[@name='bbb'][10]"<br> * <br> * 【Map属性配列・階層なしの試験】<br> * 想定した入力の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName03() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = false; target.isMapAttributeReturnValue = true; target.extractDecrementIndexReturnValue = "[9]"; // テスト実施 result = target.toPropertyName("aaa[@name='bbb'][10]"); // 判定 assertEquals("aaa(bbb)[9]", result); assertEquals("aaa[@name='bbb'][10]", target.isMapObjectArg1.get(0)); assertEquals("aaa[@name='bbb'][10]", target.extractMapKeyArg1.get(0)); assertEquals("aaa[@name='bbb'][10]", target.isMapAttributeArg1.get(0)); assertEquals("aaa[@name='bbb'][10]", target.extractMapAttributeNameArg1 .get(0)); assertEquals("aaa[@name='bbb'][10]", target.extractDecrementIndexArg1 .get(0)); } /** * testToPropertyName04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:"aaa"<br> * (状態) スタブisMapObject()の戻り値:false<br> * (状態) スタブisMapAttribute()の戻り値:false<br> * (状態) スタブextractAttributeName()の戻り値:"aaa"<br> * (状態) スタブextractDecrementIndex()の戻り値:""<br> * <br> * 期待値:(戻り値) String:"aaa"<br> * (状態変化) isMapObject()の引数:"aaa"<br> * (状態変化) isMapAttribute()の引数:"aaa"<br> * (状態変化) extractAttributeName()の引数:"aaa"<br> * (状態変化) extractDecrementIndex()の引数:"aaa"<br> * <br> * 【bean/プリミティブ・階層なしの試験】<br> * 想定した入力の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName04() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = false; target.isMapAttributeReturnValue = false; target.extractDecrementIndexReturnValue = ""; // テスト実施 result = target.toPropertyName("aaa"); // 判定 assertEquals("aaa", result); assertEquals("aaa", target.isMapObjectArg1.get(0)); assertEquals("aaa", target.isMapAttributeArg1.get(0)); assertEquals("aaa", target.extractAttributeNameArg1.get(0)); assertEquals("aaa", target.extractDecrementIndexArg1.get(0)); } /** * testToPropertyName05() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:"aaa[100]"<br> * (状態) スタブisMapObject()の戻り値:false<br> * (状態) スタブisMapAttribute()の戻り値:false<br> * (状態) スタブextractAttributeName()の戻り値:"aaa"<br> * (状態) スタブextractDecrementIndex()の戻り値:"[99]"<br> * <br> * 期待値:(戻り値) String:"aaa[99]"<br> * (状態変化) isMapObject()の引数:"aaa[100]"<br> * (状態変化) isMapAttribute()の引数:"aaa[100]"<br> * (状態変化) extractAttributeName()の引数:"aaa[100]"<br> * (状態変化) extractDecrementIndex()の引数:"aaa[100]"<br> * <br> * 【bean/プリミティブ配列・階層なしの試験】<br> * 想定した入力の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName05() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = false; target.isMapAttributeReturnValue = false; target.extractDecrementIndexReturnValue = "[99]"; // テスト実施 result = target.toPropertyName("aaa[100]"); // 判定 assertEquals("aaa[99]", result); assertEquals("aaa[100]", target.isMapObjectArg1.get(0)); assertEquals("aaa[100]", target.isMapAttributeArg1.get(0)); assertEquals("aaa[100]", target.extractAttributeNameArg1.get(0)); assertEquals("aaa[100]", target.extractDecrementIndexArg1.get(0)); } /** * testToPropertyName06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) xpath:"aaa[@name='bbb']/ddd[@name='eee']"<br> * (状態) スタブisMapObject()の戻り値:false<br> * (状態) スタブextractMapKey()の戻り値:1回目: "bbb"<br> * 2回目: "eee"<br> * (状態) スタブisMapAttribute()の戻り値:true<br> * (状態) スタブextractMapAttributeName()の戻り値:1回目: "aaa"<br> * 2回目: "ddd"<br> * (状態) スタブextractDecrementIndex()の戻り値:""<br> * <br> * 期待値:(戻り値) String:"aaa(bbb).ddd(eee)"<br> * (状態変化) isMapObject()の引数:1回目: "aaa[@name='bbb']"<br> * 2回目: "ddd[@name='eee']"<br> * (状態変化) extractMapKey()の引数:1回目: "aaa[@name='bbb']"<br> * 2回目: "ddd[@name='eee']"<br> * (状態変化) isMapAttribute()の引数:1回目: "aaa[@name='bbb']"<br> * 2回目: "ddd[@name='eee']"<br> * (状態変化) extractMapAttributeName()の引数:1回目: "aaa[@name='bbb']"<br> * 2回目: "ddd[@name='eee']"<br> * (状態変化) extractDecrementIndex()の引数:1回目: "aaa[@name='bbb']"<br> * 2回目: "ddd[@name='eee']"<br> * <br> * 【Map属性・階層ありの試験】<br> * 想定した入力の場合の試験。階層間の区切り文字ありパターン。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName06() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub04 target = new JXPathIndexedBeanWrapperImplStub04(""); target.isMapObjectReturnValue = false; target.isMapAttributeReturnValue = true; target.extractDecrementIndexReturnValue = ""; // テスト実施 result = target.toPropertyName("aaa[@name='bbb']/ddd[@name='eee']"); // 判定 assertEquals("aaa(bbb).ddd(eee)", result); assertEquals("aaa[@name='bbb']", target.isMapObjectArg1.get(0)); assertEquals("aaa[@name='bbb']", target.extractMapKeyArg1.get(0)); assertEquals("ddd[@name='eee']", target.extractMapKeyArg1.get(1)); assertEquals("aaa[@name='bbb']", target.isMapAttributeArg1.get(0)); assertEquals("ddd[@name='eee']", target.isMapAttributeArg1.get(1)); assertEquals("aaa[@name='bbb']", target.extractMapAttributeNameArg1.get( 0)); assertEquals("ddd[@name='eee']", target.extractMapAttributeNameArg1.get( 1)); assertEquals("aaa[@name='bbb']", target.extractDecrementIndexArg1.get( 0)); assertEquals("ddd[@name='eee']", target.extractDecrementIndexArg1.get( 1)); } /** * testToPropertyName07() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) xpath:""<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("XPath is null or blank.")<br> * (状態変化) ログ:ログレベル:エラー<br> * XPath is null or blank.<br> * <br> * xpathが空文字の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testToPropertyName07() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.toPropertyName(""); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("XPath is null or blank.", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "XPath is null or blank.")))); } } /** * testExtractAttributeName01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[bbb]"<br> * <br> * 期待値:(戻り値) String:"aaa"<br> * <br> * nodeの内容が ネストなしの想定した形式の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractAttributeName01() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractAttributeName("aaa[bbb]"); // 判定 assertEquals("aaa", result); } /** * testExtractAttributeName02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[bbb][ddd]"<br> * <br> * 期待値:(戻り値) String:"aaa[bbb]"<br> * <br> * nodeの内容がネストのある 想定した形式の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractAttributeName02() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractAttributeName("aaa[bbb][ddd]"); // 判定 assertEquals("aaa[bbb]", result); } /** * testExtractAttributeName03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa.ccc.eee"<br> * <br> * 期待値:(戻り値) String:"aaa.ccc.eee"<br> * <br> * nodeの"["がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractAttributeName03() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractAttributeName("aaa.ccc.eee"); // 判定 assertEquals("aaa.ccc.eee", result); } /** * testExtractAttributeName04() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) node:""<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * nodeが空文字の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractAttributeName04() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractAttributeName(""); // 判定 assertEquals("", result); } /** * testExtractMapAttributeName01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[bbb]"<br> * <br> * 期待値:(戻り値) String:"aaa"<br> * <br> * nodeの内容が 想定した形式の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapAttributeName01() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractMapAttributeName("aaa[bbb]"); // 判定 assertEquals("aaa", result); } /** * testExtractMapAttributeName02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"[bbb]"<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * nodeの属性名がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapAttributeName02() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractMapAttributeName("[bbb]"); // 判定 assertEquals("", result); } /** * testExtractMapAttributeName03() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map attribute. Invalid property name. 'aaa'")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map attribute. Invalid property name. 'aaa'<br> * <br> * nodeの"["がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapAttributeName03() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapAttributeName("aaa"); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals( "Cannot get Map attribute. Invalid property name. 'aaa'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map attribute. Invalid property name. 'aaa'")))); } } /** * testExtractMapAttributeName04() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) node:""<br> * <br> * 期待値:(状態変化) 例外:IllegalArgmentException("Cannot get Map attribute. Invalid property name. ''")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map attribute. Invalid property name. ''<br> * <br> * nodeが空文字の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapAttributeName04() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapAttributeName(""); 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. ''")))); } } /** * testExtractMapKey01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[@name='bbb']"<br> * <br> * 期待値:(戻り値) String:"bbb"<br> * <br> * nodeの内容が 想定した形式の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey01() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractMapKey("aaa[@name='bbb']"); // 判定 assertEquals("bbb", result); } /** * testExtractMapKey02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[@name='']"<br> * <br> * 期待値:(戻り値) String:""<br> * <br> * nodeのMapキーが空文字の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey02() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.extractMapKey("aaa[@name='']"); // 判定 assertEquals("", result); } /** * testExtractMapKey03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa[@name='bbb'"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map key. Invalid property name. 'aaa[@name='bbb''")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. 'aaa[@name='bbb''<br> * <br> * nodeの"]"がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey03() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapKey("aaa[@name='bbb'"); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals( "Cannot get Map key. Invalid property name. 'aaa[@name='bbb''", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. 'aaa[@name='bbb''")))); } } /** * testExtractMapKey04() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa@name='bbb']"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map key. Invalid property name. 'aaa@name='bbb']'")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. 'aaa@name='bbb']'<br> * <br> * nodeの"["がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey04() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapKey("aaa@name='bbb']"); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals( "Cannot get Map key. Invalid property name. 'aaa@name='bbb']'", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. 'aaa@name='bbb']'")))); } } /** * testExtractMapKey05() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa"<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map key. Invalid property name. 'aaa'")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. 'aaa'<br> * <br> * nodeの[]がない場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey05() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapKey("aaa"); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("Cannot get Map key. Invalid property name. 'aaa'", e .getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. 'aaa'")))); } } /** * testExtractMapKey06() <br> * <br> * (異常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"aaa]@name='bbb'["<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map key. Invalid property name. 'aaa]@name='bbb'['")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. 'aaa]@name='bbb'['<br> * <br> * nodeの[]が逆向きの場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey06() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapKey("aaa]@name='bbb'["); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals( "Cannot get Map key. Invalid property name. 'aaa]@name='bbb'['", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "Cannot get Map key. Invalid property name. 'aaa]@name='bbb'['")))); } } /** * testExtractMapKey07() <br> * <br> * (異常系) <br> * 観点:C <br> * <br> * 入力値:(引数) node:""<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("Cannot get Map key. Invalid property name. ''")<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Map key. Invalid property name. ''<br> * <br> * nodeが空文字の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractMapKey07() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 try { target.extractMapKey(""); 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. ''")))); } } /** * testExtractDecrementIndex01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"[3]"<br> * (状態) スタブextractIncrementIndex()の戻り値:"test[3]&-1"<br> * <br> * 期待値:(戻り値) String:"[3]:-1"<br> * (状態変化) extractIncrementIndex()<br> * の引数:property="[3]"<br> * increment=-1<br> * (property+":"+incrementを当メソッドの戻り値とする)<br> * <br> * extractIncrementIndex()を正しく呼び出していることの試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testExtractDecrementIndex01() throws Exception { // 前処理 String result = null; JXPathIndexedBeanWrapperImplStub02 target = new JXPathIndexedBeanWrapperImplStub02(""); // テスト実施 result = target.extractDecrementIndex("[3]"); // 判定 assertEquals("[3]:-1", result); } /** * testIsMapAttribute01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"z[@name]"<br> * <br> * 期待値:(戻り値) boolean:true<br> * <br> * Mapオブジェクトの場合の試験。nodeの途中に"[@name" <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapAttribute01() throws Exception { // 前処理 boolean result = false; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapAttribute("z[@name]"); // 判定 assertTrue(result); } /** * testIsMapAttribute02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"@name"<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * Mapオブジェクト以外の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapAttribute02() throws Exception { // 前処理 boolean result = true; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapAttribute("@name"); // 判定 assertFalse(result); } /** * testIsMapAttribute03() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) node:""<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * nodeが空文字列の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapAttribute03() throws Exception { // 前処理 boolean result = true; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapAttribute(""); // 判定 assertFalse(result); } /** * testIsMapObject01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:".[@name"<br> * <br> * 期待値:(戻り値) boolean:true<br> * <br> * Mapオブジェクトの場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapObject01() throws Exception { // 前処理 boolean result = false; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapObject(".[@name"); // 判定 assertTrue(result); } /** * testIsMapObject02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) node:"a.[@name=]"<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * Mapオブジェクト以外の場合の試験。".[@name"が先頭から始まらない。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapObject02() throws Exception { // 前処理 boolean result = true; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapObject("a.[@name=]"); // 判定 assertFalse(result); } /** * testIsMapObject03() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) node:""<br> * <br> * 期待値:(戻り値) boolean:false<br> * <br> * nodeが空文字列の場合の試験。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testIsMapObject03() throws Exception { // 前処理 boolean result = true; JXPathIndexedBeanWrapperImpl target = new JXPathIndexedBeanWrapperImpl(""); // テスト実施 result = target.isMapObject(""); // 判定 assertFalse(result); } }