This commit is contained in:
Looly
2021-01-02 10:27:52 +08:00
parent 6837180fc6
commit 387845b869
3 changed files with 239 additions and 254 deletions

View File

@@ -1,112 +1,95 @@
package cn.hutool.core.bean;
import lombok.Data;
import org.junit.Assert;
import org.junit.Test;
import cn.hutool.core.bean.DynaBean;
/**
* {@link DynaBean}单元测试
* @author Looly
*
* @author Looly
*/
public class DynaBeanTest {
@Test
public void beanTest(){
public void beanTest() {
User user = new User();
DynaBean bean = DynaBean.create(user);
bean.set("name", "李华");
bean.set("age", 12);
String name = bean.get("name");
Assert.assertEquals(user.getName(), name);
int age = bean.get("age");
Assert.assertEquals(user.getAge(), age);
//重复包装测试
DynaBean bean2 = new DynaBean(bean);
User user2 = bean2.getBean();
Assert.assertEquals(user, user2);
//执行指定方法
Object invoke = bean2.invoke("testMethod");
Assert.assertEquals("test for 李华", invoke);
}
@Test
public void bean_by_static_clazz_constructor_Test() {
String name_before = "李华";
int age_before = 12;
DynaBean bean = DynaBean.create(User.class);
bean.set("name", name_before);
bean.set("age", age_before);
@Test
public void beanByStaticClazzConstructorTest() {
String name_before = "李华";
int age_before = 12;
DynaBean bean = DynaBean.create(User.class);
bean.set("name", name_before);
bean.set("age", age_before);
String name_after = bean.get("name");
Assert.assertEquals(name_before, name_after);
int age_after = bean.get("age");
Assert.assertEquals(age_before, age_after);
String name_after = bean.get("name");
Assert.assertEquals(name_before, name_after);
int age_after = bean.get("age");
Assert.assertEquals(age_before, age_after);
//重复包装测试
DynaBean bean2 = new DynaBean(bean);
User user2 = bean2.getBean();
User user1 = bean.getBean();
Assert.assertEquals(user1, user2);
//重复包装测试
DynaBean bean2 = new DynaBean(bean);
User user2 = bean2.getBean();
User user1 = bean.getBean();
Assert.assertEquals(user1, user2);
//执行指定方法
Object invoke = bean2.invoke("testMethod");
Assert.assertEquals("test for 李华", invoke);
}
//执行指定方法
Object invoke = bean2.invoke("testMethod");
Assert.assertEquals("test for 李华", invoke);
}
@Test
public void bean_by_instance_clazz_constructor_Test() {
String name_before = "李华";
int age_before = 12;
DynaBean bean = new DynaBean(User.class);
bean.set("name", name_before);
bean.set("age", age_before);
@Test
public void beanByInstanceClazzConstructorTest() {
String name_before = "李华";
int age_before = 12;
DynaBean bean = new DynaBean(User.class);
bean.set("name", name_before);
bean.set("age", age_before);
String name_after = bean.get("name");
Assert.assertEquals(name_before, name_after);
int age_after = bean.get("age");
Assert.assertEquals(age_before, age_after);
String name_after = bean.get("name");
Assert.assertEquals(name_before, name_after);
int age_after = bean.get("age");
Assert.assertEquals(age_before, age_after);
//重复包装测试
DynaBean bean2 = new DynaBean(bean);
User user2 = bean2.getBean();
User user1 = bean.getBean();
Assert.assertEquals(user1, user2);
//重复包装测试
DynaBean bean2 = new DynaBean(bean);
User user2 = bean2.getBean();
User user1 = bean.getBean();
Assert.assertEquals(user1, user2);
//执行指定方法
Object invoke = bean2.invoke("testMethod");
Assert.assertEquals("test for 李华", invoke);
}
public static class User{
//执行指定方法
Object invoke = bean2.invoke("testMethod");
Assert.assertEquals("test for 李华", invoke);
}
@Data
public static class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String testMethod(){
public String testMethod() {
return "test for " + this.name;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
}