package testsuite;
import beans.StringBean;
import javassist.JavasisstHelper;
import org.junit.Test;
import static javassist.matchers.JavaAssistMatchers.proxy;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
public abstract class ReplaceJavaAssistProxyByClass {
public static class BeanWithJavaAssistProxy {
private StringBean stringBean;
public StringBean getStringBean() {
return stringBean;
}
public void setStringBean(StringBean stringBean) {
this.stringBean = stringBean;
}
}
@Test
public void mapToConcreteTypeInsteadOfProxy() throws Exception {
BeanWithJavaAssistProxy beanWithJavaAssistProxy = new BeanWithJavaAssistProxy();
StringBean stringBean = JavasisstHelper.create(StringBean.class);
beanWithJavaAssistProxy.setStringBean(stringBean);
assertThat(mapped(beanWithJavaAssistProxy).getStringBean(), not(proxy()));
}
protected abstract BeanWithJavaAssistProxy mapped(BeanWithJavaAssistProxy beanWithJavaAssistProxy);
}