package cn.org.rapid_framework.jdbc.sqlgenerator;
import static org.junit.Assert.*;
import org.junit.Test;
import cn.org.rapid_framework.jdbc.sqlgenerator.metadata.Column;
import cn.org.rapid_framework.jdbc.sqlgenerator.metadata.Table;
public class SpringNamedSqlGeneratorTest {
Table table = new Table("user",new Column("user_id","userId",true),new Column("user_name","userName"),new Column("pwd","pwd"));
SpringNamedSqlGenerator t = new SpringNamedSqlGenerator(table);
Table multiKeyTable = new Table("user",new Column("user_id","userId",true),new Column("group_id","groupId",true),new Column("user_name","userName"),new Column("pwd","pwd"));
SpringNamedSqlGenerator multiKeySqlGenerator = new SpringNamedSqlGenerator(multiKeyTable);
@Test
public void insertSql() {
System.out.println(t.getInsertSql());
assertEquals("INSERT INTO user (user_id,user_name,pwd ) VALUES ( :userId,:userName,:pwd ) ", t.getInsertSql());
}
@Test
public void updateSql() {
System.out.println(t.getUpdateByPkSql());
assertEquals("UPDATE user SET user_name = :userName,pwd = :pwd WHERE user_id = :userId", t.getUpdateByPkSql());
assertEquals("UPDATE user SET user_name = :userName,pwd = :pwd WHERE user_id = :userId AND group_id = :groupId", multiKeySqlGenerator.getUpdateByPkSql());
assertEquals("UPDATE user SET user_name = :userName,pwd = :pwd WHERE user_id = :userId AND group_id = :groupId", multiKeySqlGenerator.getUpdateByPkSql());
}
@Test
public void deleteSql() {
System.out.println(t.getDeleteByMultiPkSql());
assertEquals("DELETE FROM user WHERE user_id = :userId", t.getDeleteByMultiPkSql());
assertEquals("DELETE FROM user WHERE user_id = :userId AND group_id = :groupId", multiKeySqlGenerator.getDeleteByMultiPkSql());
}
@Test
public void getDeleteBySinglePkSql() {
System.out.println(t.getDeleteBySinglePkSql());
assertEquals("DELETE FROM user WHERE user_id = ?", t.getDeleteBySinglePkSql());
try {
multiKeySqlGenerator.getDeleteBySinglePkSql();
fail();
}catch(IllegalStateException espected) {
assertNotNull(espected);
}
}
@Test
public void getSelectByPrimaryKeysSql() {
System.out.println(t.getSelectByMultiPkSql());
assertEquals("SELECT user_id userId,user_name userName,pwd pwd FROM user WHERE user_id = :userId", t.getSelectByMultiPkSql());
assertEquals("SELECT user_id userId,group_id groupId,user_name userName,pwd pwd FROM user WHERE user_id = :userId AND group_id = :groupId", multiKeySqlGenerator.getSelectByMultiPkSql());
}
@Test
public void getSelectBySinglePkSql() {
System.out.println(t.getSelectBySinglePkSql());
assertEquals("SELECT user_id userId,user_name userName,pwd pwd FROM user WHERE user_id = ?", t.getSelectBySinglePkSql());
try {
multiKeySqlGenerator.getSelectBySinglePkSql();
fail();
}catch(IllegalStateException espected) {
assertNotNull(espected);
}
}
@Test
public void getColumnsSql() {
System.out.println(t.getColumnsSql());
assertEquals("user_id userId,user_name userName,pwd pwd", t.getColumnsSql());
}
}