/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* 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 org.seasar.extension.dxo.command.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.seasar.extension.dxo.Hoge;
import org.seasar.extension.dxo.HogeHoge;
import org.seasar.extension.dxo.builder.impl.BeanToBeanDxoCommandBuilder;
import org.seasar.extension.dxo.command.DxoCommand;
import org.seasar.framework.unit.S2FrameworkTestCase;
/**
* @author koichik
*/
public class BeanToBeanDxoCommandTigerTest extends S2FrameworkTestCase {
private BeanToBeanDxoCommandBuilder builder;
@Override
protected void setUp() throws Exception {
super.setUp();
include("dxo.dicon");
}
/**
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testListToArray1() throws Exception {
DxoCommand command = builder.createDxoCommand(ToArrayDxo.class,
ToArrayDxo.class.getMethod("convert",
new Class[] { List.class }));
List<HogeHoge> src = new ArrayList<HogeHoge>();
src.add(new HogeHoge("100", "Hoge".toCharArray(), 1000));
src.add(new HogeHoge("200", "HogeHoge".toCharArray(), 2000));
Hoge[] dest = (Hoge[]) command.execute(new Object[] { src });
assertNotNull(dest);
assertEquals(2, dest.length);
Hoge hoge = dest[0];
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest[1];
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
* @throws Exception
*/
public void testListToArray2() throws Exception {
DxoCommand command = builder.createDxoCommand(ToArrayDxo.class,
ToArrayDxo.class.getMethod("convert", new Class[] { List.class,
Hoge[].class }));
List<HogeHoge> src = new ArrayList<HogeHoge>();
src.add(new HogeHoge("100", "Hoge".toCharArray(), 1000));
src.add(new HogeHoge("200", "HogeHoge".toCharArray(), 2000));
Hoge[] dest = new Hoge[2];
command.execute(new Object[] { src, dest });
assertNotNull(dest);
assertEquals(2, dest.length);
Hoge hoge = dest[0];
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest[1];
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testArrayToList1() throws Exception {
DxoCommand command = builder.createDxoCommand(ToListDxo.class,
ToListDxo.class.getMethod("convert",
new Class[] { HogeHoge[].class }));
HogeHoge[] src = new HogeHoge[2];
src[0] = new HogeHoge("100", "Hoge".toCharArray(), 1000);
src[1] = new HogeHoge("200", "HogeHoge".toCharArray(), 2000);
List<Hoge> dest = (List<Hoge>) command.execute(new Object[] { src });
assertNotNull(dest);
assertEquals(2, dest.size());
Hoge hoge = dest.get(0);
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest.get(1);
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
* @throws Exception
*/
public void testArrayToList2() throws Exception {
DxoCommand command = builder.createDxoCommand(ToListDxo.class,
ToListDxo.class.getMethod("convert", new Class[] {
HogeHoge[].class, List.class }));
HogeHoge[] src = new HogeHoge[2];
src[0] = new HogeHoge("100", "Hoge".toCharArray(), 1000);
src[1] = new HogeHoge("200", "HogeHoge".toCharArray(), 2000);
List<Hoge> dest = new ArrayList<Hoge>();
command.execute(new Object[] { src, dest });
assertNotNull(dest);
assertEquals(2, dest.size());
Hoge hoge = dest.get(0);
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest.get(1);
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testListToList1() throws Exception {
DxoCommand command = builder.createDxoCommand(ToListDxo.class,
ToListDxo.class
.getMethod("convert", new Class[] { List.class }));
List<HogeHoge> src = new ArrayList<HogeHoge>();
src.add(new HogeHoge("100", "Hoge".toCharArray(), 1000));
src.add(new HogeHoge("200", "HogeHoge".toCharArray(), 2000));
List<Hoge> dest = (List<Hoge>) command.execute(new Object[] { src });
assertNotNull(dest);
assertEquals(2, dest.size());
Hoge hoge = dest.get(0);
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest.get(1);
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
* @throws Exception
*/
public void testLIstToList2() throws Exception {
DxoCommand command = builder.createDxoCommand(ToListDxo.class,
ToListDxo.class.getMethod("convert", new Class[] { List.class,
List.class }));
List<HogeHoge> src = new ArrayList<HogeHoge>();
src.add(new HogeHoge("100", "Hoge".toCharArray(), 1000));
src.add(new HogeHoge("200", "HogeHoge".toCharArray(), 2000));
List<Hoge> dest = new ArrayList<Hoge>();
command.execute(new Object[] { src, dest });
assertNotNull(dest);
assertEquals(2, dest.size());
Hoge hoge = dest.get(0);
assertEquals(100, hoge.getFoo());
assertEquals("Hoge", hoge.getBar());
assertEquals(new BigDecimal("1000"), hoge.getBaz());
hoge = dest.get(1);
assertEquals(200, hoge.getFoo());
assertEquals("HogeHoge", hoge.getBar());
assertEquals(new BigDecimal("2000"), hoge.getBaz());
}
/**
*
*/
public interface ToArrayDxo {
/**
* @param src
* @return
*/
Hoge[] convert(List<HogeHoge> src);
/**
* @param src
* @param dest
*/
void convert(List<HogeHoge> src, Hoge[] dest);
}
/**
*
*/
public interface ToListDxo {
/**
* @param src
* @return
*/
List<Hoge> convert(HogeHoge[] src);
/**
* @param src
* @param dest
*/
void convert(HogeHoge[] src, List<Hoge> dest);
/**
* @param src
* @return
*/
List<Hoge> convert(List<HogeHoge> src);
/**
* @param src
* @param dest
*/
void convert(List<HogeHoge> src, List<Hoge> dest);
}
}