mirror of https://github.com/lqs/sqlingo
tests
This commit is contained in:
parent
8e73adea59
commit
d00ed9b02b
|
@ -34,8 +34,8 @@ func (m *mockRows) Next(dest []driver.Value) error {
|
|||
}
|
||||
m.count++
|
||||
dest[0] = strconv.Itoa(m.count)
|
||||
dest[1] = dest[0]
|
||||
dest[2] = dest[0]
|
||||
dest[1] = float32(m.count)
|
||||
dest[2] = m.count
|
||||
dest[3] = string(m.count % 2) // '\x00' or '\x01'
|
||||
dest[4] = strconv.Itoa(m.count % 2) // '0' or '1'
|
||||
dest[5] = dest[0]
|
||||
|
@ -93,6 +93,13 @@ func TestCursor(t *testing.T) {
|
|||
if err := cursor.Scan(); err != nil {
|
||||
t.Errorf("%v", err)
|
||||
}
|
||||
|
||||
var s string
|
||||
var b ****bool
|
||||
var p *string
|
||||
if err := cursor.Scan(&s, &s, &s, &b, &s, &s, &p); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
if cursor.Next() {
|
||||
t.Errorf("d")
|
||||
|
|
|
@ -5,21 +5,30 @@ import (
|
|||
"testing"
|
||||
)
|
||||
|
||||
type CustomInt int
|
||||
type CustomBool bool
|
||||
type CustomFloat float32
|
||||
type CustomString string
|
||||
|
||||
func TestExpression(t *testing.T) {
|
||||
assertValue(t, nil, "NULL")
|
||||
|
||||
assertValue(t, false, "0")
|
||||
assertValue(t, true, "1")
|
||||
assertValue(t, CustomBool(false), "0")
|
||||
assertValue(t, CustomBool(true), "1")
|
||||
|
||||
assertValue(t, int8(11), "11")
|
||||
assertValue(t, int16(11111), "11111")
|
||||
assertValue(t, int32(1111111111), "1111111111")
|
||||
assertValue(t, CustomInt(1111111111), "1111111111")
|
||||
assertValue(t, int(1111111111), "1111111111")
|
||||
assertValue(t, int64(1111111111111111111), "1111111111111111111")
|
||||
|
||||
assertValue(t, int8(-11), "-11")
|
||||
assertValue(t, int16(-11111), "-11111")
|
||||
assertValue(t, int32(-1111111111), "-1111111111")
|
||||
assertValue(t, CustomInt(-1111111111), "-1111111111")
|
||||
assertValue(t, int(-1111111111), "-1111111111")
|
||||
assertValue(t, int64(-1111111111111111111), "-1111111111111111111")
|
||||
|
||||
|
@ -38,6 +47,7 @@ func TestExpression(t *testing.T) {
|
|||
assertValue(t, "", "\"\"")
|
||||
assertValue(t, "a' or 'a'='a", "\"a\\' or \\'a\\'=\\'a\"")
|
||||
assertValue(t, "\n", "\"\\\n\"")
|
||||
assertValue(t, CustomString("abc"), "\"abc\"")
|
||||
|
||||
x := 3
|
||||
px := &x
|
||||
|
@ -136,6 +146,11 @@ func TestFunc(t *testing.T) {
|
|||
assertError(t, ee.IsNull())
|
||||
assertError(t, e.In(ee, ee, ee))
|
||||
assertError(t, ee.In(e, e, e))
|
||||
|
||||
assertError(t, ee.Between(2, 4))
|
||||
assertError(t, e.Between(2, ee))
|
||||
assertError(t, e.Between(ee, 4))
|
||||
|
||||
}
|
||||
|
||||
func TestMisc(t *testing.T) {
|
||||
|
@ -143,6 +158,9 @@ func TestMisc(t *testing.T) {
|
|||
assertValue(t, falseExpression(), "0")
|
||||
|
||||
assertValue(t, command("COMMAND", staticExpression("<arg>", 0)), "COMMAND <arg>")
|
||||
|
||||
assertValue(t, staticExpression("<expression>", 1).
|
||||
prefixSuffixExpression("<prefix>", "<suffix>", 1), "<prefix><expression><suffix>")
|
||||
}
|
||||
|
||||
func TestLogicalExpression(t *testing.T) {
|
||||
|
@ -170,4 +188,7 @@ func TestLogicalOptimizer(t *testing.T) {
|
|||
assertValue(t, trueValue.And(falseValue), "1 AND 0")
|
||||
assertValue(t, falseValue.And(trueValue), "0")
|
||||
assertValue(t, falseValue.And(falseValue), "0")
|
||||
|
||||
assertValue(t, falseValue.Not(), "1")
|
||||
assertValue(t, trueValue.Not(), "0")
|
||||
}
|
||||
|
|
|
@ -21,4 +21,5 @@ func TestFunction(t *testing.T) {
|
|||
assertValue(t, Count(a1), "COUNT(a1)")
|
||||
assertValue(t, If(a1, 1, 2), "IF(a1, 1, 2)")
|
||||
assertValue(t, Length(a1), "LENGTH(a1)")
|
||||
assertValue(t, Sum(a1), "SUM(a1)")
|
||||
}
|
||||
|
|
|
@ -56,6 +56,23 @@ func TestSelect(t *testing.T) {
|
|||
db.Select(1).WithContext(context.Background())
|
||||
|
||||
db.SelectFrom(Table1).GetSQL()
|
||||
|
||||
}
|
||||
|
||||
func TestCount(t *testing.T) {
|
||||
db := newMockDatabase()
|
||||
|
||||
_, _ = db.SelectFrom(Test).Count()
|
||||
assertLastSql(t, "SELECT COUNT(1) FROM `test`")
|
||||
|
||||
_, _ = db.SelectDistinct(Test.F1).From(Test).Count()
|
||||
assertLastSql(t, "SELECT COUNT(DISTINCT `f1`) FROM `test`")
|
||||
|
||||
_, _ = db.Select(Test.F1).From(Test).GroupBy(Test.F2).Count()
|
||||
assertLastSql(t, "SELECT COUNT(1) FROM (SELECT 1 FROM `test` GROUP BY `f2`) AS t")
|
||||
|
||||
_, _ = db.SelectDistinct(Test.F1).From(Test).GroupBy(Test.F2).Count()
|
||||
assertLastSql(t, "SELECT COUNT(1) FROM (SELECT DISTINCT `f1` FROM `test` GROUP BY `f2`) AS t")
|
||||
}
|
||||
|
||||
func TestLock(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue