package org.nutz.dao.test.normal.mysql;
import static org.junit.Assert.*;
import java.math.BigDecimal;
import org.junit.Test;
import org.nutz.dao.test.DaoCase;
import org.nutz.lang.util.NutMap;
public class MysqlJsonTest extends DaoCase {
@Override
protected void before() {
if (!dao.meta().isMySql())
return;
dao.create(StudentJson.class, true);
}
@Test
public void crud() {
if (!dao.meta().isMySql())
return;
NutMap data = NutMap.NEW().setv("name", "Alpha").setv("age", 20).setv("addr", "Beijing");
StudentResult alphaResult = new StudentResult();
alphaResult.setMathematics("A");
alphaResult.setPhysics(new BigDecimal("100"));
alphaResult.setForeignLanguage(120);
StudentJson student = new StudentJson();
student.setData(data);
student.setStudentResult(alphaResult);
int insertId = dao.insert(student).getId();
StudentJson insertStudent = dao.fetch(StudentJson.class, insertId);
assertEquals(data, insertStudent.getData());
assertTrue(alphaResult.equals(insertStudent.getStudentResult()));
insertStudent.getData().put("addr", "Dalian");
insertStudent.getStudentResult().setMathematics("S");
dao.updateIgnoreNull(insertStudent);
StudentJson updateStudent = dao.fetch(StudentJson.class, insertId);
assertEquals("Dalian", updateStudent.getData().get("addr"));
assertEquals("S", updateStudent.getStudentResult().getMathematics());
dao.delete(StudentJson.class, insertId);
assertNull(dao.fetch(StudentJson.class, insertId));
}
}