/*
* 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.jxpath;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import java.util.Locale;
import org.apache.commons.jxpath.ri.QName;
import org.apache.commons.jxpath.ri.model.NodePointer;
import org.apache.commons.jxpath.ri.model.beans.NullPointer;
import org.junit.Test;
import org.springframework.test.util.ReflectionTestUtils;
/**
* {@link jp.terasoluna.fw.beans.jxpath.BeanPointerFactoryEx} クラスのブラックボックステスト。
* <p>
* <h4>【クラスの概要】</h4> Beanポインタファクトリの拡張クラス。<br>
* 前提条件:
* <p>
* @see jp.terasoluna.fw.beans.jxpath.BeanPointerFactoryEx
*/
public class BeanPointerFactoryExTest {
/**
* testGetOrder01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値: <br>
* 期待値:(戻り値) -:850<br>
* <br>
* ソート順を取得するメソッド。固定値を返す。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testGetOrder01() throws Exception {
// 前処理
BeanPointerFactoryEx factory = new BeanPointerFactoryEx();
// テスト実施
assertEquals(850, factory.getOrder());
}
/**
* testCreateNodePointerQname01() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) name:not null<br>
* (引数) bean:new Object()<br>
* (引数) locale:Locale("ja")<br>
* <br>
* 期待値:(戻り値) NodePointer:new BeanPointerEX {<br>
* locale=引数のlocale<br>
* name=引数のname<br>
* bean=引数のbean<br>
* }<br>
* <br>
* ノードポインタを取得するテスト。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testCreateNodePointerQname01() throws Exception {
// 前処理
BeanPointerFactoryEx factory = new BeanPointerFactoryEx();
QName qName = new QName("name");
Object bean = new Object();
Locale locale = new Locale("ja");
// テスト実施
NodePointer result = factory.createNodePointer(qName, bean, locale);
// 判定
assertSame(BeanPointerEx.class, result.getClass());
assertSame(locale, result.getLocale());
assertSame(qName, result.getName());
assertSame(bean, ReflectionTestUtils.getField(result, "bean"));
}
/**
* testCreateNodePointerNodePointer01() <br>
* <br>
* (正常系) <br>
* 観点:C <br>
* <br>
* 入力値:(引数) parent:not null<br>
* (引数) name:not null<br>
* (引数) bean:null<br>
* <br>
* 期待値:(戻り値) NodePointer:new NullPointer {<br>
* parent=引数のparent<br>
* name=引数のname<br>
* }<br>
* <br>
* ターゲットがnullの場合のテスト。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testCreateNodePointerNodePointer01() throws Exception {
// 前処理
BeanPointerFactoryEx factory = new BeanPointerFactoryEx();
QName qName = new QName("name");
Locale locale = new Locale("ja");
NodePointer nodePointer = NodePointer.newNodePointer(qName, null,
locale);
// テスト実施
NodePointer result = factory.createNodePointer(nodePointer, qName,
null);
// 判定
assertSame(NullPointer.class, result.getClass());
assertSame(nodePointer, result.getParent());
assertSame(qName, result.getName());
}
/**
* testCreateNodePointerNodePointer02() <br>
* <br>
* (正常系) <br>
* 観点:A <br>
* <br>
* 入力値:(引数) parent:not null<br>
* (引数) name:not null<br>
* (引数) bean:new Object()<br>
* <br>
* 期待値:(戻り値) NodePointer:new BeanPointerEX {<br>
* parent=引数のparent<br>
* name=引数のname<br>
* bean=引数のbean<br>
* }<br>
* <br>
* ターゲットがnullではない場合のテスト。 <br>
* @throws Exception このメソッドで発生した例外
*/
@Test
public void testCreateNodePointerNodePointer02() throws Exception {
// 前処理
BeanPointerFactoryEx factory = new BeanPointerFactoryEx();
QName qName = new QName("name");
Object bean = new Object();
Locale locale = new Locale("ja");
NodePointer nodePointer = NodePointer.newNodePointer(qName, bean,
locale);
// テスト実施
NodePointer result = factory.createNodePointer(nodePointer, qName,
bean);
// 判定
assertSame(BeanPointerEx.class, result.getClass());
assertSame(nodePointer, result.getParent());
assertSame(qName, result.getName());
assertSame(bean, ReflectionTestUtils.getField(result, "bean"));
}
}