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  }