package org.nutz.json.generic;
import static org.junit.Assert.assertEquals;
import java.lang.reflect.Type;
import org.junit.Test;
import org.nutz.dao.entity.Record;
import org.nutz.json.Json;
import org.nutz.lang.util.NutType;
public class GenericTest {
@SuppressWarnings("unchecked")
@Test
public void test() throws SecurityException, NoSuchFieldException {
String str = "jk";
String mobil = "13123132321";
String json = "{'loginName' :'user1','body' :{'mobile' :'"
+ mobil
+ "'}, 'str':'"
+ str
+ "'}";
Type type = new NutType(JsonRequest2.class,
Employee2.class,
String.class);
JsonRequest2<Employee2, String> request = (JsonRequest2<Employee2, String>) Json.fromJson(type,
json);
assertEquals(request.body.mobile, mobil);
assertEquals(request.str, str);
}
@SuppressWarnings("unchecked")
@Test
public void test2() {
String str = "jk";
String mobil = "13123132321";
String json = "{'loginName' :'user1','body' :{'mobile' :'"
+ mobil
+ "'}, 'str':{'mobile' :'"
+ str
+ "'}}";
Type type = new NutType(JsonRequest2.class,
Employee2.class,
Employee2.class);
JsonRequest2<Employee2, Employee2> request = ((JsonRequest2<Employee2, Employee2>) Json.fromJson(type,
json));
assertEquals(request.body.mobile, mobil);
assertEquals(request.str.mobile, str);
}
@Test
@SuppressWarnings("unchecked")
public void receiveJsonRequest() {
Employee user = new Employee();
user.setMobile("13123132321");
JsonRequest<Employee> request = new JsonRequest<Employee>();
request.setBody(user);
request.setLoginName("user1");
request.setPassword("1234");
request.setVersion("1101");
String json = Json.toJson(request);
// System.out.println(json);
request = (JsonRequest<Employee>) Json.fromJson(new NutType(request.getClass(),
Employee.class),
json);
// System.out.println(request.getBody().getMobile());
}
@Test
@SuppressWarnings("unchecked")
public void receiveJsonRequest4Record() {
Record record = new Record();
record.put("a", "a");
record.put("b", 1);
JsonRequest<Record> request = new JsonRequest<Record>();
request.setBody(record);
request.setLoginName("user1");
request.setPassword("1234");
request.setVersion("1101");
request.setUserType(JsonRequest.USER_TYPE_EMPLOYEE);
String json = Json.toJson(request);
// System.out.println(json);
request = (JsonRequest<Record>) Json.fromJson(new NutType(request.getClass(),
record.getClass()),
json);
// System.out.println(request.getBody().getString("a"));
// System.out.println(request.getBody().getInt("b"));
}
}