/* * 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 static java.util.Arrays.asList; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import static uk.org.lidalia.slf4jtest.LoggingEvent.error; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.WrapDynaBean; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.JXPathInvalidSyntaxException; import uk.org.lidalia.slf4jext.Level; import uk.org.lidalia.slf4jtest.TestLogger; import uk.org.lidalia.slf4jtest.TestLoggerFactory; import org.springframework.test.util.ReflectionTestUtils; import org.junit.After; import org.junit.Test; /** * {@link jp.terasoluna.fw.beans.JXPathIndexedBeanWrapperImpl} クラスのブラックボックステスト。 * <p> * <h4>【クラスの概要】</h4> JavaBeanの配列・コレクション型属性にアクセスできるクラス。<br> * 前提条件: * <p> * @see jp.terasoluna.fw.beans.JXPathIndexedBeanWrapperImpl */ public class JXPathIndexedBeanWrapperImplTest01 { private TestLogger logger = TestLoggerFactory.getTestLogger( JXPathIndexedBeanWrapperImpl.class); /** * 終了処理を行う。 */ @After public void tearDown() { logger.clear(); } /** * testJXPathIndexedBeanWrapperImpl01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) obj:not null<br> * (状態) this.context:null<br> * <br> * 期待値:(状態変化) this.context:引数で設定された値。<br> * <br> * ターゲットとなるJavaBeanをcontext属性に設定するコンストラクタのテスト。正常ケース。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testJXPathIndexedBeanWrapperImpl01() throws Exception { // 前処理 Object obj = new Object(); // テスト実施 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(obj); // 判定 JXPathContext context = (JXPathContext) ReflectionTestUtils.getField(bw, "context"); assertSame(obj, context.getContextBean()); } /** * testJXPathIndexedBeanWrapperImpl02() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) obj:null<br> * (状態) this.context:null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("TargetBean is null!")<br> * (状態変化) ログ:ログレベル:エラー<br> * TargetBean is null!<br> * <br> * 引数のJavaBeanがNullの場合のテスト。例外を投げる。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testJXPathIndexedBeanWrapperImpl02() throws Exception { // 前処理 try { new JXPathIndexedBeanWrapperImpl(null); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("TargetBean is null!", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "TargetBean is null!")))); } } /** * testGetIndexedPropertyValuesJavaBean01() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:null<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("PropertyName is empty!")<br> * (状態変化) ログ:ログレベル:エラーPropertyName is empty!<br> * <br> * 引数のプロパティ名がNullのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean01() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues(null); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("PropertyName is empty!", e.getMessage()); logger.setEnabledLevels(Level.ERROR); assertThat(logger.getLoggingEvents(), is(asList(error( "PropertyName is empty!")))); } } /** * testGetIndexedPropertyValuesJavaBean02() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:""(空文字)<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException("PropertyName is empty!")<br> * (状態変化) ログ:ログレベル:エラーPropertyName is empty!<br> * <br> * 引数のプロパティ名が空文字のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean02() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues(""); fail(); } catch (IllegalArgumentException e) { // 判定 assertEquals("PropertyName is empty!", e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error( "PropertyName is empty!")))); } } /** * testGetIndexedPropertyValuesJavaBean03() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:"."(ドット1つ)<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Property name is null or blank.<br> * 原因例外:JXPathException<br> * (状態変化) ログ:ログレベル:エラー<br> * Property name is null or blank.<br> * <br> * 不正なプロパティ名が入れられた場合のテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean03() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues("."); 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.")))); } } /** * testGetIndexedPropertyValuesJavaBean04() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:"/"<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid character has found within property name. '/' Cannot use [ / " ' ]<br> * 原因例外:JXPathException<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid character has found within property name. '/' Cannot use [ / " ' ]<br> * <br> * プロパティ名に/(スラッシュ)が入っているバターン <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean04() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues("/"); fail(); } catch (IllegalArgumentException e) { // 判定 String expect = "Invalid character has found within property name. " + "'/' Cannot use [ / \" ' ]"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesJavaBean05() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:"["<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Cannot get Index. Invalid property name. '['<br> * 原因例外:JXPathException<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. '['<br> * <br> * プロパティ名に[(配列の記号)が入っているバターン <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean05() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues("["); fail(); } catch (IllegalArgumentException e) { // 判定 String expect = "Cannot get Index. Invalid property name. '['"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesJavaBean06() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:"[a]"<br> * (状態) this.context:not null<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid character has found within property name. '[a]' Cannot use [ [] ]<br> * 原因例外:JXPathException<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid character has found within property name. '[a]' Cannot use [ [] ]<br> * <br> * プロパティ名に](配列の記号)が入っているバターン <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean06() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new Object()); // テスト実施 try { bw.getIndexedPropertyValues("[a]"); fail(); } catch (IllegalArgumentException e) { // 判定 String expect = "Invalid character has found within property name. '[a]' Cannot use [ [] ]"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(Object型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property"); // 判定 assertEquals(1, result.size()); assertNull(result.get("property")); assertNull(PropertyUtils.getProperty(bean, "property")); assertNull(BeanUtils.getProperty(bean, "property")); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(String型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_2() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty2(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property2"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("property2")); assertNull(result.get("property2")); assertNull(PropertyUtils.getProperty(bean, "property2")); assertNull(BeanUtils.getProperty(bean, "property2")); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(Date型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_3() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty3(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property3"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("property3")); assertNull(result.get("property3")); assertNull(PropertyUtils.getProperty(bean, "property3")); assertNull(BeanUtils.getProperty(bean, "property3")); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(List型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_4() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty4(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property4"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("property4")); assertNull(result.get("property4")); assertNull(PropertyUtils.getProperty(bean, "property4")); assertNull(BeanUtils.getProperty(bean, "property4")); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(int[]型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_5() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty5(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property5"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("property5")); assertNull(result.get("property5")); assertNull(PropertyUtils.getProperty(bean, "property5")); assertNull(BeanUtils.getProperty(bean, "property5")); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=new ArrayList()<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * <br> * <br> * 【JavaBeanのテスト】<br> * 空のリスト値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_6() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty4(new ArrayList<Object>()); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property4"); // 判定 assertEquals(0, result.size()); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=new int[]<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * <br> * <br> * 【JavaBeanのテスト】<br> * 空のint配列を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_7() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty5(new int[] {}); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("property5"); // 判定 assertEquals(0, result.size()); } /** * testGetIndexedPropertyValuesJavaBean07() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"property"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * property=null<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * property=null<br> * <br> * 【JavaBeanのテスト】<br> * null値の値を取得するテスト。(List型) <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean07_8() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setObjectArray(null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("objectArray"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("objectArray")); assertNull(result.get("objectArray")); assertNull(PropertyUtils.getProperty(bean, "objectArray")); assertNull(BeanUtils.getProperty(bean, "objectArray")); } /** * testGetIndexedPropertyValuesJavaBean08() <br> * <br> * (正常系) <br> * 観点:C <br> * <br> * 入力値:(引数) propertyName:"foo"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo="test"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo="test"<br> * <br> * 【JavaBeanのテスト】<br> * String型の値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean08() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty("test"); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> map = bw.getIndexedPropertyValues("property"); // 判定 assertEquals(1, map.size()); assertTrue(map.containsKey("property")); assertEquals("test", map.get("property")); assertEquals("test", PropertyUtils.getProperty(bean, "property")); assertEquals("test", BeanUtils.getProperty(bean, "property")); } /** * testGetIndexedPropertyValuesJavaBean09() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo=false<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo=false<br> * <br> * 【JavaBeanのテスト】<br> * boolean型の値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean09() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setBoolProperty(false); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "boolProperty"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("boolProperty")); assertFalse((Boolean) result.get("boolProperty")); assertEquals("false", PropertyUtils.getProperty(bean, "boolProperty") .toString()); assertEquals("false", BeanUtils.getProperty(bean, "boolProperty")); } /** * testGetIndexedPropertyValuesJavaBean10() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo.bar.hoge="test"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo.bar.hoge="test"<br> * <br> * 【JavaBeanのテスト】<br> * ネストした値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean10() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub03 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03(); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo(); // bar JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar bar = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar(); // hoge bar.setHoge("test"); // foo.bar.hoge foo.setBar(bar); bean.setFoo(foo); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("foo.bar.hoge")); assertEquals("test", result.get("foo.bar.hoge")); assertEquals("test", PropertyUtils.getProperty(bean, "foo.bar.hoge")); assertEquals("test", BeanUtils.getProperty(bean, "foo.bar.hoge")); } /** * testGetIndexedPropertyValuesJavaBean11() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo[0].bar.hoge="test0"<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo[0].bar.hoge="test0"<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * <br> * 【JavaBeanのテスト】<br> * オブジェクト配列の値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean11() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub04 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04(); // foos[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); // foos[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); // foos[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); // foos bean.setFoos(new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo[] { foo1, foo2, foo3 }); // foos[0].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo1.setBar(bar1); // foos[1].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo2.setBar(bar2); // foos[2].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo3.setBar(bar3); // foos[0].bar.hoge="test0" bar1.setHoge("test0"); // foos[1].bar.hoge="test1" bar2.setHoge("test1"); // foos[2].bar.hoge="test2" bar3.setHoge("test2"); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foos.bar.hoge"); // 判定 assertEquals(3, result.size()); assertEquals("test0", result.get("foos[0].bar.hoge")); assertEquals("test1", result.get("foos[1].bar.hoge")); assertEquals("test2", result.get("foos[2].bar.hoge")); assertEquals("test0", PropertyUtils.getProperty(bean, "foos[0].bar.hoge")); assertEquals("test0", BeanUtils.getProperty(bean, "foos[0].bar.hoge")); assertEquals("test1", PropertyUtils.getProperty(bean, "foos[1].bar.hoge")); assertEquals("test1", BeanUtils.getProperty(bean, "foos[1].bar.hoge")); assertEquals("test2", PropertyUtils.getProperty(bean, "foos[2].bar.hoge")); assertEquals("test2", BeanUtils.getProperty(bean, "foos[2].bar.hoge")); } /** * testGetIndexedPropertyValuesJavaBean12() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo[0].bar.hoge="test0"<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo[0].bar.hoge="test0"<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * <br> * 【JavaBeanのテスト】<br> * List値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean12() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub04 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04(); // foo List<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo> fooList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo>(); // foo[0],foo[1],foo[2] // foo[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo1); // foo[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo2); // foo[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo3); // foo[0].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo1.setBar(bar1); // foo[1].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo2.setBar(bar2); // foo[2].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo3.setBar(bar3); // foo[0].bar.hoge="test0" bar1.setHoge("test0"); // foo[1].bar.hoge="test1" bar2.setHoge("test1"); // foo[2].bar.hoge="test2" bar3.setHoge("test2"); bean.setFoo(fooList); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(3, result.size()); assertEquals("test0", result.get("foo[0].bar.hoge")); assertEquals("test1", result.get("foo[1].bar.hoge")); assertEquals("test2", result.get("foo[2].bar.hoge")); assertEquals("test0", PropertyUtils.getProperty(bean, "foo[0].bar.hoge")); assertEquals("test0", BeanUtils.getProperty(bean, "foo[0].bar.hoge")); assertEquals("test1", PropertyUtils.getProperty(bean, "foo[1].bar.hoge")); assertEquals("test1", BeanUtils.getProperty(bean, "foo[1].bar.hoge")); assertEquals("test2", PropertyUtils.getProperty(bean, "foo[2].bar.hoge")); assertEquals("test2", BeanUtils.getProperty(bean, "foo[2].bar.hoge")); } /** * testGetIndexedPropertyValuesJavaBean13() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo[0].bar.hoge=null<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo[0].bar.hoge=null<br> * foo[1].bar.hoge="test1"<br> * foo[2].bar.hoge="test2"<br> * <br> * 【JavaBeanのテスト】<br> * 配列+null混じりの値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean13() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub04 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04(); // foo List<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo> fooList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo>(); // foo[0],foo[1],foo[2] // foo[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo1); // foo[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo2); // foo[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo3); // foo[0].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo1.setBar(bar1); // foo[1].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo2.setBar(bar2); // foo[2].bar JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar3 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); foo3.setBar(bar3); // foo[0].bar.hoge=null bar1.setHoge(null); // foo[1].bar.hoge="test1" bar2.setHoge("test1"); // foo[2].bar.hoge="test2" bar3.setHoge("test2"); bean.setFoo(fooList); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(3, result.size()); assertNull(result.get("foo[0].bar.hoge")); assertEquals("test1", result.get("foo[1].bar.hoge")); assertEquals("test2", result.get("foo[2].bar.hoge")); assertNull(PropertyUtils.getProperty(bean, "foo[0].bar.hoge")); assertNull(BeanUtils.getProperty(bean, "foo[0].bar.hoge")); assertEquals("test1", PropertyUtils.getProperty(bean, "foo[1].bar.hoge")); assertEquals("test1", BeanUtils.getProperty(bean, "foo[1].bar.hoge")); assertEquals("test2", PropertyUtils.getProperty(bean, "foo[2].bar.hoge")); assertEquals("test2", BeanUtils.getProperty(bean, "foo[2].bar.hoge")); } /** * testGetIndexedPropertyValuesJavaBean14() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[1].hoge[0]="test1"<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[1].hoge[0]="test1"<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * <br> * 【JavaBeanのテスト】<br> * ネスト+配列の値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean14() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub05 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05(); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo(); bean.setFoo(foo); // foo.bar[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[] List<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar> barList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar>(); // foo.bar[0] barList.add(bar0); // foo.bar[1] barList.add(bar1); // foo.bar[2] barList.add(bar2); // foo.bar foo.setBar(barList); // foo.bar[0].hoge[0]="test0" List<String> hoge0 = new ArrayList<String>(); hoge0.add("test0"); bar0.setHoge(hoge0); // foo.bar[1].hoge[0]="test1" List<String> hoge1 = new ArrayList<String>(); hoge1.add("test1"); bar1.setHoge(hoge1); // foo.bar[2].hoge[0]="test2" // foo.bar[2].hoge[1]="test3" // foo.bar[2].hoge[2]="test4" List<String> hoge2 = new ArrayList<String>(); hoge2.add("test2"); hoge2.add("test3"); hoge2.add("test4"); bar2.setHoge(hoge2); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(5, result.size()); assertEquals("test0", result.get("foo.bar[0].hoge[0]")); assertEquals("test1", result.get("foo.bar[1].hoge[0]")); assertEquals("test2", result.get("foo.bar[2].hoge[0]")); assertEquals("test3", result.get("foo.bar[2].hoge[1]")); assertEquals("test4", result.get("foo.bar[2].hoge[2]")); assertEquals("test0", PropertyUtils.getProperty(bean, "foo.bar[0].hoge[0]")); assertEquals("test0", BeanUtils.getProperty(bean, "foo.bar[0].hoge[0]")); assertEquals("test1", PropertyUtils.getProperty(bean, "foo.bar[1].hoge[0]")); assertEquals("test1", BeanUtils.getProperty(bean, "foo.bar[1].hoge[0]")); assertEquals("test2", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[0]")); assertEquals("test2", BeanUtils.getProperty(bean, "foo.bar[2].hoge[0]")); assertEquals("test3", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[1]")); assertEquals("test3", BeanUtils.getProperty(bean, "foo.bar[2].hoge[1]")); assertEquals("test4", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[2]")); assertEquals("test4", BeanUtils.getProperty(bean, "foo.bar[2].hoge[2]")); } /** * testGetIndexedPropertyValuesJavaBean15() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[1]=null<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * <br> * 【JavaBeanのテスト】<br> * ネスト+配列+nullが混じるパターンの値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean15() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub05 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05(); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo(); bean.setFoo(foo); // foo.bar[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar1 = null; // foo.bar[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[] List<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar> barList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar>(); // foo.bar[0] barList.add(bar0); // foo.bar[1] barList.add(bar1); // foo.bar[2] barList.add(bar2); // foo.bar foo.setBar(barList); // foo.bar[0].hoge[0]="test0" List<String> hoge0 = new ArrayList<String>(); hoge0.add("test0"); bar0.setHoge(hoge0); // foo.bar[1]=null // foo.bar[2].hoge[0]="test2" // foo.bar[2].hoge[1]="test3" // foo.bar[2].hoge[2]="test4" List<String> hoge2 = new ArrayList<String>(); hoge2.add("test2"); hoge2.add("test3"); hoge2.add("test4"); bar2.setHoge(hoge2); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(4, result.size()); assertEquals("test0", result.get("foo.bar[0].hoge[0]")); assertEquals("test2", result.get("foo.bar[2].hoge[0]")); assertEquals("test3", result.get("foo.bar[2].hoge[1]")); assertEquals("test4", result.get("foo.bar[2].hoge[2]")); assertEquals("test0", PropertyUtils.getProperty(bean, "foo.bar[0].hoge[0]")); assertEquals("test0", BeanUtils.getProperty(bean, "foo.bar[0].hoge[0]")); assertEquals("test2", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[0]")); assertEquals("test2", BeanUtils.getProperty(bean, "foo.bar[2].hoge[0]")); assertEquals("test3", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[1]")); assertEquals("test3", BeanUtils.getProperty(bean, "foo.bar[2].hoge[1]")); assertEquals("test4", PropertyUtils.getProperty(bean, "foo.bar[2].hoge[2]")); assertEquals("test4", BeanUtils.getProperty(bean, "foo.bar[2].hoge[2]")); } /** * testGetIndexedPropertyValuesJavaBean16() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"map(key)"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * map=Map{<br> * key="test"<br> * }<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * map(key)="test"<br> * <br> * 【JavaBeanのテスト】<br> * Map型の属性を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean16() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); Map<String, String> map = new HashMap<String, String>(); map.put("key", "test"); // map.put("key", null); bean.setMap(map); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("map(key)"); // 判定 assertEquals(1, result.size()); assertEquals("test", result.get("map(key)")); assertEquals("test", PropertyUtils.getProperty(bean, "map(key)")); assertEquals("test", BeanUtils.getProperty(bean, "map(key)")); } /** * testGetIndexedPropertyValuesJavaBean17() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"map(key)"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * map=Map{<br> * key=(List)<br> * ∟[0] = 1<br> * [1] = 2<br> * [2] = 3<br> * }<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * map(key)[0]=1<br> * map(key)[1]=2<br> * map(key)[2]=3<br> * <br> * 【JavaBeanのテスト】<br> * Map型の属性からList値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean17() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); Map<String, Object> map = new HashMap<String, Object>(); map.put("key", list); bean.setMap(map); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("map(key)"); // 判定 assertEquals(3, result.size()); assertEquals(1, result.get("map(key)[0]")); assertEquals(2, result.get("map(key)[1]")); assertEquals(3, result.get("map(key)[2]")); } /** * testGetIndexedPropertyValuesJavaBean18() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"map(key).value"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * map=Map{<br> * key=new Bean()<br> * ∟value="test"<br> * }<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * map(key).value="test"<br> * <br> * 【JavaBeanのテスト】<br> * ネストしたMap型の属性を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean18() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); JXPathIndexedBeanWrapperImpl_JavaBeanStub01 subBean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); subBean.setProperty("test"); Map<String, Object> map = new HashMap<String, Object>(); map.put("key", subBean); bean.setMap(map); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "map(key).property"); // 判定 assertEquals(1, result.size()); assertEquals("test", result.get("map(key).property")); assertEquals("test", PropertyUtils.getProperty(bean, "map(key).property")); assertEquals("test", BeanUtils.getProperty(bean, "map(key).property")); } /** * testGetIndexedPropertyValuesJavaBean19() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"aaa"<br> * (状態) this.context:JavaBean{<br> * (プロパティ名=値)<br> * foo="test"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * 空のマップ<br> * <br> * 【JavaBeanのテスト】<br> * 存在しないプロパティ名にアクセスしたときのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesJavaBean19() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub01 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub01(); bean.setProperty("test"); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("aaa"); // 判定 assertEquals(0, result.size()); } /** * testGetIndexedPropertyValuesMap01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:key<br> * (状態) this.context:Map<String, Object><br> * key="value"<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * key="value"<br> * <br> * 【Map型のテスト】<br> * String型の値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap01() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); map.put("key", "value"); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("key"); // 判定 assertEquals(1, result.size()); assertEquals("value", result.get("key")); assertEquals("value", PropertyUtils.getProperty(map, "key")); assertEquals("value", BeanUtils.getProperty(map, "key")); } /** * testGetIndexedPropertyValuesMap02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:key<br> * (状態) this.context:Map<String, Object><br> * key=null<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * key=null<br> * <br> * 【Map型のテスト】<br> * null値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap02() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); map.put("key", null); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("key"); // 判定 assertEquals(1, result.size()); assertNull(result.get("key")); assertNull(PropertyUtils.getProperty(map, "key")); assertNull(BeanUtils.getProperty(map, "key")); } /** * testGetIndexedPropertyValuesMap03() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:key<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * 空のMap<br> * <br> * 【Map型のテスト】<br> * 存在しないキー名をもとにオブジェクトを取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap03() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("key"); // 判定 assertEquals(0, result.size()); } /** * testGetIndexedPropertyValuesMap04() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:ints<br> * (状態) this.context:Map<String, Object><br> * ints=int[]{1,2,3}<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * ints[0]=1<br> * ints[1]=2<br> * ints[2]=3<br> * <br> * 【Map型のテスト】<br> * int型配列を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap04() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); map.put("ints", new int[] { 1, 2, 3 }); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("ints"); // 判定 assertEquals(3, result.size()); assertEquals(1, result.get("ints[0]")); assertEquals(2, result.get("ints[1]")); assertEquals(3, result.get("ints[2]")); } /** * testGetIndexedPropertyValuesMap05() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:numbers<br> * (状態) this.context:Map<String, Object><br> * numbers=Long[]{1,2,3}<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * numbers[0]=1<br> * numbers[1]=2<br> * numbers[2]=3<br> * <br> * 【Map型のテスト】<br> * Long型配列を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap05() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); map.put("numbers", new Long[] { new Long(1), new Long(2), new Long(3) }); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("numbers"); // 判定 assertEquals(3, result.size()); assertEquals(new Long(1), result.get("numbers[0]")); assertEquals(new Long(2), result.get("numbers[1]")); assertEquals(new Long(3), result.get("numbers[2]")); } /** * testGetIndexedPropertyValuesMap06() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:numbers<br> * (状態) this.context:Map<String, Object><br> * numbers=List{1,2,3}<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * numbers[0]=1<br> * numbers[1]=2<br> * numbers[2]=3<br> * <br> * 【Map型のテスト】<br> * Long型Listを取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap06() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); List<Long> list = new ArrayList<Long>(); list.add(new Long(1)); list.add(new Long(2)); list.add(new Long(3)); map.put("numbers", list); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues("numbers"); // 判定 assertEquals(3, result.size()); assertEquals(new Long(1), result.get("numbers[0]")); assertEquals(new Long(2), result.get("numbers[1]")); assertEquals(new Long(3), result.get("numbers[2]")); } /** * testGetIndexedPropertyValuesMap07() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:bean.subBean.property<br> * (状態) this.context:Map<String, Object><br> * foo=new Foo()<br> * ∟bar=new Bar()<br> * ∟hoge="value"<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * bean.subBean.property="value"<br> * <br> * 【Map型のテスト】<br> * ネストしたプロパティを取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap07() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); // bar="value" JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar bar = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar(); bar.setHoge("value"); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo(); foo.setBar(bar); map.put("foo", foo); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(1, result.size()); assertEquals("value", result.get("foo.bar.hoge")); assertEquals("value", PropertyUtils.getProperty(map, "foo.bar.hoge")); assertEquals("value", BeanUtils.getProperty(map, "foo.bar.hoge")); } /** * testGetIndexedPropertyValuesMap08() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:beans.subBean.property<br> * (状態) this.context:Map<String, Object><br> * foo=new Foo[3]<br> * ∟[0] new Foo()<br> * ∟bar=new Bar()<br> * ∟hoge="value1"<br> * ∟[1] null<br> * ∟[2] new Foo()<br> * ∟bar=new Bar()<br> * ∟hoge="value2"<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo[0].bar.hoge="value1"<br> * foo[2].bar.hoge="value3"<br> * <br> * 【Map型のテスト】<br> * ネスト+配列プロパティを取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap08() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); // foo List<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo> fooList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo>(); // foo[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo0); // foo[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo1); // foo[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); fooList.add(foo2); // foo[0].bar.hoge="value" JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); bar0.setHoge("value1"); foo0.setBar(bar0); // foo[1].bar=null foo1.setBar(null); // foo[2].bar.hoge="value" JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Bar(); bar2.setHoge("value3"); foo2.setBar(bar2); map.put("foo", fooList); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(2, result.size()); assertEquals("value1", result.get("foo[0].bar.hoge")); assertEquals("value3", result.get("foo[2].bar.hoge")); } /** * testGetIndexedPropertyValuesMap09() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:beans.property<br> * (状態) this.context:Map<String, Object><br> * foo=new Bean[3]<br> * ∟[0] new Bean()<br> * ∟property="value1"<br> * ∟[1] new Bean()<br> * ∟property=null<br> * ∟[2] new Bean()<br> * ∟property="value3"<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * beans[0].property="value1"<br> * beans[1].property=null<br> * beans[2].property="value3"<br> * <br> * 【Map型のテスト】<br> * 配列+null混じりのプロパティを取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap09() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); // foo List<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo> fooList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo>(); // foo[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); foo0.setProperty("value1"); fooList.add(foo0); // foo[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo1 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); foo1.setProperty(null); fooList.add(foo1); // foo[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo foo2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub04.Foo(); foo2.setProperty("value3"); fooList.add(foo2); map.put("foo", fooList); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.property"); // 判定 assertEquals(3, result.size()); assertEquals("value1", result.get("foo[0].property")); assertNull(result.get("foo[1].property")); assertEquals("value3", result.get("foo[2].property")); } /** * testGetIndexedPropertyValuesMap10() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa/aa.bbb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid character has found within property name. 'aa/aa.bbb' Cannot use [ / " ' ]<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid character has found within property name. 'aa/aa.bbb' Cannot use [ / " ' ]<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap10() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa/aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Invalid character has found within property name. 'aa/aa.bbb' Cannot use [ / \" ' ]"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesMap11() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa[aa.bbb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalStateException<br> * メッセージ:Cannot get Index. Invalid property name. 'aa[aa.bbb'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. 'aa[aa.bbb'<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap11() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa[aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Cannot get Index. Invalid property name. 'aa[aa.bbb'"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesMap12() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa]aa.bbb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalStateException<br> * メッセージ:Cannot get Index. Invalid property name. 'aa]aa.bbb'<br> * (状態変化) ログ:ログレベル:エラー<br> * Cannot get Index. Invalid property name. 'aa]aa.bbb'<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap12() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa]aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Cannot get Index. Invalid property name. 'aa]aa.bbb'"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesMap13() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:aa.aa.bb<br> * (状態) this.context:Map<String, Object><br> * aa.aa=new Bean()<br> * ∟bb="test"<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * 空のMap<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap13() throws Exception { // 前処理 Map<String, Object> map = new HashMap<String, Object>(); JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar bar = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar(); bar.setHoge("test"); map.put("aa.aa", map); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(map); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "aa.aa.bar.hoge"); assertEquals(0, result.size()); } /** * testGetIndexedPropertyValuesMap14() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa'aa.bb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid character has found within property name. 'aa'aa.bb' Cannot use [ / " ' ]<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid character has found within property name. 'aa'aa.bb' Cannot use [ / " ' ]<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap14() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa'aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Invalid character has found within property name. 'aa'aa.bbb' Cannot use [ / \" ' ]"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesMap15() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa"aa.bb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid character has found within property name. 'aa"aa.bb' Cannot use [ / " ' ]<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid character has found within property name. 'aa"aa.bb' Cannot use [ / " ' ]<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap15() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa\"aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Invalid character has found within property name. 'aa\"aa.bbb' Cannot use [ / \" ' ]"; assertEquals(expect, e.getMessage()); assertThat(logger.getLoggingEvents(), is(asList(error(expect)))); } } /** * testGetIndexedPropertyValuesMap16() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa(aa.bb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid property name. PropertyName: 'aa(aa.bbb'XPath: '/aa(aa/bbb'<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid property name. PropertyName: 'aa(aa.bbb'XPath: '/aa(aa/bbb'<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap16() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa(aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Invalid property name. PropertyName: 'aa(aa.bbb'XPath: '/aa(aa/bbb'"; assertEquals(expect, e.getMessage()); assertSame(JXPathInvalidSyntaxException.class, e.getCause() .getClass()); } } /** * testGetIndexedPropertyValuesMap17() <br> * <br> * (異常系) <br> * 観点:G <br> * <br> * 入力値:(引数) propertyName:aa)aa.bb<br> * (状態) this.context:Map<String, Object><br> * 空のMap<br> * <br> * 期待値:(状態変化) 例外:IllegalArgumentException<br> * メッセージ:Invalid property name. PropertyName: 'aa)aa.bbb'XPath: '/aa)aa/bbb'<br> * (状態変化) ログ:ログレベル:エラー<br> * Invalid property name. PropertyName: 'aa)aa.bbb'XPath: '/aa)aa/bbb'<br> * <br> * 【Map型のテスト】<br> * 不正なMapキーのテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesMap17() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(new HashMap<String, Object>()); // テスト実施 try { bw.getIndexedPropertyValues("aa)aa.bbb"); fail(); } catch (IllegalArgumentException e) { // OK String expect = "Invalid property name. PropertyName: 'aa)aa.bbb'XPath: '/aa)aa/bbb'"; assertEquals(expect, e.getMessage()); assertSame(JXPathInvalidSyntaxException.class, e.getCause() .getClass()); } } /** * testGetIndexedPropertyValuesJavaBean01() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:DynaBean{<br> * (プロパティ名=値)<br> * foo.bar.hoge="test"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo.bar.hoge="test"<br> * <br> * 【DynaBeanのテスト】<br> * ネストした値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesDynaBean01() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub03 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03(); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Foo(); // bar JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar bar = new JXPathIndexedBeanWrapperImpl_JavaBeanStub03.Bar(); // hoge bar.setHoge("test"); // foo.bar.hoge foo.setBar(bar); bean.setFoo(foo); WrapDynaBean dynaBean = new WrapDynaBean(bean); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(dynaBean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(1, result.size()); assertTrue(result.containsKey("foo.bar.hoge")); assertEquals("test", result.get("foo.bar.hoge")); assertEquals("test", PropertyUtils.getProperty(dynaBean, "foo.bar.hoge")); assertEquals("test", BeanUtils.getProperty(dynaBean, "foo.bar.hoge")); } /** * testGetIndexedPropertyValuesJavaBean02() <br> * <br> * (正常系) <br> * 観点:A <br> * <br> * 入力値:(引数) propertyName:"foo.bar.hoge"<br> * (状態) this.context:DynaBean{<br> * (プロパティ名=値)<br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[1]=null<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * }<br> * <br> * 期待値:(戻り値) Map<String, Object>:Map<String, Object><br> * foo.bar[0].hoge[0]="test0"<br> * foo.bar[2].hoge[0]="test2"<br> * foo.bar[2].hoge[1]="test3"<br> * foo.bar[2].hoge[2]="test4"<br> * <br> * 【DynaBeanのテスト】<br> * ネスト+配列+nullが混じるパターンの値を取得するテスト。 <br> * @throws Exception このメソッドで発生した例外 */ @Test public void testGetIndexedPropertyValuesDynaBean02() throws Exception { // 前処理 JXPathIndexedBeanWrapperImpl_JavaBeanStub05 bean = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05(); // foo JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo foo = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Foo(); bean.setFoo(foo); // foo.bar[0] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar0 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[1] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar1 = null; // foo.bar[2] JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar bar2 = new JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar(); // foo.bar[] List<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar> barList = new ArrayList<JXPathIndexedBeanWrapperImpl_JavaBeanStub05.Bar>(); // foo.bar[0] barList.add(bar0); // foo.bar[1] barList.add(bar1); // foo.bar[2] barList.add(bar2); // foo.bar foo.setBar(barList); // foo.bar[0].hoge[0]="test0" List<String> hoge0 = new ArrayList<String>(); hoge0.add("test0"); bar0.setHoge(hoge0); // foo.bar[1]=null // foo.bar[2].hoge[0]="test2" // foo.bar[2].hoge[1]="test3" // foo.bar[2].hoge[2]="test4" List<String> hoge2 = new ArrayList<String>(); hoge2.add("test2"); hoge2.add("test3"); hoge2.add("test4"); bar2.setHoge(hoge2); WrapDynaBean dynaBean = new WrapDynaBean(bean); JXPathIndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(dynaBean); // テスト実施 Map<String, Object> result = bw.getIndexedPropertyValues( "foo.bar.hoge"); // 判定 assertEquals(4, result.size()); assertEquals("test0", result.get("foo.bar[0].hoge[0]")); assertEquals("test2", result.get("foo.bar[2].hoge[0]")); assertEquals("test3", result.get("foo.bar[2].hoge[1]")); assertEquals("test4", result.get("foo.bar[2].hoge[2]")); assertEquals("test0", PropertyUtils.getProperty(dynaBean, "foo.bar[0].hoge[0]")); assertEquals("test0", BeanUtils.getProperty(dynaBean, "foo.bar[0].hoge[0]")); } }