github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgSql/MysqlAst/SelectCommand_test.go (about) 1 package MysqlAst 2 3 import ( 4 "testing" 5 6 . "github.com/bronze1man/kmg/kmgTest" 7 ) 8 9 func TestSelectCommand1(t *testing.T) { 10 text, parameterList := NewSelectCommand().From("tbf_test").Where("real_name=1").GetPrepareParameter() 11 Equal(text, "SELECT * FROM tbf_test WHERE real_name=1") 12 Equal(len(parameterList), 0) 13 } 14 15 func TestSelectCommand2(t *testing.T) { 16 s1 := NewSelectCommand().From("Table1").Where("a=1 AND b=?", "c").Limit("1,2") 17 text, parameterList := s1.GetPrepareParameter() 18 Equal(text, "SELECT * FROM Table1 WHERE a=1 AND b=? LIMIT 1,2") 19 Equal(parameterList, []string{"c"}) 20 21 s2 := s1.Copy() 22 s2.Limit("2,2") 23 text, _ = s1.GetPrepareParameter() 24 Equal(text, "SELECT * FROM Table1 WHERE a=1 AND b=? LIMIT 1,2") 25 text, _ = s2.GetPrepareParameter() 26 Equal(text, "SELECT * FROM Table1 WHERE a=1 AND b=? LIMIT 2,2") 27 } 28 29 func TestAndWhereConditionAddPrepare(t *testing.T) { 30 and := NewAndWhereCondition().AddPrepare("a=1").AddPrepare("d=?", "c") 31 s1 := NewSelectCommand().From("Table1").WhereObj(and) 32 text, parameterList := s1.GetPrepareParameter() 33 Equal(text, "SELECT * FROM Table1 WHERE (a=1) AND (d=?)") 34 Equal(parameterList, []string{"c"}) 35 36 s2 := s1.Copy() 37 text, parameterList = s2.GetPrepareParameter() 38 Equal(text, "SELECT * FROM Table1 WHERE (a=1) AND (d=?)") 39 Equal(parameterList, []string{"c"}) 40 } 41 42 func TestOrWhereConditionAddPrepare(t *testing.T) { 43 and := NewOrWhereCondition().AddPrepare("a=1").AddPrepare("d=?", "c") 44 s1 := NewSelectCommand().From("Table1").WhereObj(and) 45 text, parameterList := s1.GetPrepareParameter() 46 Equal(text, "SELECT * FROM Table1 WHERE (a=1) OR (d=?)") 47 Equal(parameterList, []string{"c"}) 48 }