package com.alibaba.tamper;
import java.util.HashMap;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.junit.Test;
import com.alibaba.tamper.core.config.BeanMappingBehavior;
import com.alibaba.tamper.core.config.BeanMappingConfigHelper;
import com.alibaba.tamper.core.config.BeanMappingField;
import com.alibaba.tamper.core.config.BeanMappingObject;
import com.alibaba.tamper.object.SrcMappingObject;
import com.alibaba.tamper.object.TargetMappingObject;
/**
* @author jianghang 2011-5-27 上午09:26:38
*/
public class ConfigTest extends TestCase {
@Test
public void testFileParse() {
String file = "mapping/config.xml";
BeanMappingConfigHelper.getInstance().registerConfig(file);
BeanMappingObject object = BeanMappingConfigHelper.getInstance().getBeanMappingObject(HashMap.class,
HashMap.class);
assertNull(object);
object = BeanMappingConfigHelper.getInstance().getBeanMappingObject("testConfig");
printObject(object);
assertNotNull(object);
BeanMappingBehavior globalBehavior = BeanMappingConfigHelper.getInstance().getGlobalBehavior();
Assert.assertEquals(globalBehavior.isMappingNullValue(), true);
Assert.assertEquals(globalBehavior.isMappingEmptyStrings(), true);
Assert.assertEquals(globalBehavior.isDebug(), false);
Assert.assertEquals(globalBehavior.isTrimStrings(), true);
BeanMappingBehavior beanBehavior = object.getBehavior();
Assert.assertEquals(beanBehavior.isMappingNullValue(), false);// 覆盖了global
Assert.assertEquals(beanBehavior.isDebug(), true); // 覆盖了global
Assert.assertEquals(beanBehavior.isMappingEmptyStrings(), true); // 继承了global
Assert.assertEquals(beanBehavior.isTrimStrings(), true); // 继承了global
BeanMappingField field = object.getBeanFields().get(0);
BeanMappingBehavior fieldBehavior = field.getBehavior();
Assert.assertEquals(fieldBehavior.isMappingNullValue(), true);// 覆盖了bean
Assert.assertEquals(fieldBehavior.isDebug(), true); // 继承了bean
Assert.assertEquals(fieldBehavior.isMappingEmptyStrings(), true); // 继承了bean
Assert.assertEquals(fieldBehavior.isTrimStrings(), true); // 继承了bean
}
@Test
public void testClassParse() {
Class srcClass = SrcMappingObject.class;
Class targetClass = TargetMappingObject.class;
BeanMappingObject object = BeanMappingConfigHelper.getInstance().getBeanMappingObject(srcClass, targetClass,
true);// 自动注册
assertNotNull(object);
printObject(object);
}
private void printObject(BeanMappingObject object) {
System.out.println(ToStringBuilder.reflectionToString(object, ToStringStyle.MULTI_LINE_STYLE));
for (BeanMappingField field : object.getBeanFields()) {
System.out.println(ToStringBuilder.reflectionToString(field, ToStringStyle.MULTI_LINE_STYLE));
}
}
}