@Test
public void testAddErrors01() throws Exception {

    // 前処理
    // 引数bean
    Object bean = new Object();
    // 引数field
    Field field = new Field();
    // field.getKey() : "key"
    field.setKey("key");
    // field.getMsg("name")の値を設定（errorCode取得のため）
    FastHashMap hMsgs = new FastHashMap();
    Msg msg = new Msg();
    msg.setKey("messageKey");
    hMsgs.put("name", msg);
    ReflectionTestUtils.setField(field, "hMsgs", hMsgs);
    // （Object[] args取得のため）
    @SuppressWarnings("rawtypes")
    Map[] args = new HashMap[4];
    // args[0]
    Arg arg = new Arg();
    arg.setKey("arg0");
    Map<String, Arg> hMap01 = new HashMap<String, Arg>();
    hMap01.put("name", arg);
    args[0] = hMap01;
    // args[1]
    arg = new Arg();
    arg.setKey("arg1");
    Map<String, Arg> hMap02 = new HashMap<String, Arg>();
    hMap02.put("name", arg);
    args[1] = hMap02;
    // args[2]
    arg = new Arg();
    arg.setKey("arg2");
    Map<String, Arg> hMap03 = new HashMap<String, Arg>();
    hMap03.put("name", arg);
    args[2] = hMap03;
    // args[3]
    arg = new Arg();
    arg.setKey("arg3");
    Map<String, Arg> hMap04 = new HashMap<String, Arg>();
    hMap04.put("name", arg);
    args[3] = hMap04;
    ReflectionTestUtils.setField(field, "args", args);
    // 引数va
    ValidatorAction va = new ValidatorAction();
    // va.getName : "name"
    va.setName("name");
    // SpringValidationErrorsインスタンス生成
    SpringValidationErrors validation = new SpringValidationErrors();
    // Errorsの設定 : ErrorsImpl01 - メソッドrejectValueと引数の呼出確認
    ErrorsImpl01 errors = new ErrorsImpl01();
    ReflectionTestUtils.setField(validation, "errors", errors);
    // テスト実施
    validation.addError(bean, field, va);
    // 判定
    ErrorsImpl01 assertErrors = (ErrorsImpl01) ReflectionTestUtils.getField(
            validation, "errors");
    // rejectValue呼出確認
    assertTrue(assertErrors.isRejectValue);
    // 引数field確認
    assertEquals("key", assertErrors.field);
    // 引数errorCode確認
    assertEquals("messageKey", assertErrors.errorCode);
    // assertSame(args, assertErrors.errorArgs);
    // 引数errorArgs確認
    Object[] objs = assertErrors.errorArgs;
    MessageSourceResolvable msr = null;
    for (int i = 0; i < objs.length; i++) {
        msr = (MessageSourceResolvable) objs[i];
        String[] strs = msr.getCodes();
        // codes[0] : "arg" + i
        assertEquals("arg" + i, strs[0]);
        // arguments : null
        assertNull(msr.getArguments());
        // defaultMessage : "arg" + i
        assertEquals("arg" + i, msr.getDefaultMessage());
    }
    // 引数defaultMessage確認
    assertEquals("messageKey", assertErrors.defaultMessage);
}