jet/expression_test.go

59 lines
2.1 KiB
Go
Raw Normal View History

2019-06-21 13:56:57 +02:00
package jet
2019-05-29 14:03:38 +02:00
import (
"testing"
)
func TestExpressionIS_NULL(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, table2Col3.IS_NULL(), "table2.col3 IS NULL")
assertClauseSerialize(t, table2Col3.ADD(table2Col3).IS_NULL(), "(table2.col3 + table2.col3) IS NULL")
2019-07-08 13:00:44 +02:00
assertClauseSerializeErr(t, table2Col3.ADD(nil), "jet: nil rhs")
2019-05-29 14:03:38 +02:00
}
func TestExpressionIS_NOT_NULL(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, table2Col3.IS_NOT_NULL(), "table2.col3 IS NOT NULL")
assertClauseSerialize(t, table2Col3.ADD(table2Col3).IS_NOT_NULL(), "(table2.col3 + table2.col3) IS NOT NULL")
2019-05-29 14:03:38 +02:00
}
func TestExpressionIS_DISTINCT_FROM(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, table2Col3.IS_DISTINCT_FROM(table2Col4), "(table2.col3 IS DISTINCT FROM table2.col4)")
assertClauseSerialize(t, table2Col3.ADD(table2Col3).IS_DISTINCT_FROM(Int(23)), "((table2.col3 + table2.col3) IS DISTINCT FROM $1)", int64(23))
2019-05-29 14:03:38 +02:00
}
func TestExpressionIS_NOT_DISTINCT_FROM(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, table2Col3.IS_NOT_DISTINCT_FROM(table2Col4), "(table2.col3 IS NOT DISTINCT FROM table2.col4)")
assertClauseSerialize(t, table2Col3.ADD(table2Col3).IS_NOT_DISTINCT_FROM(Int(23)), "((table2.col3 + table2.col3) IS NOT DISTINCT FROM $1)", int64(23))
2019-05-29 14:03:38 +02:00
}
func TestIN(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, Float(1.11).IN(table1.SELECT(table1Col1)),
`($1 IN ((
SELECT table1.col1 AS "table1.col1"
FROM db.table1
)))`, float64(1.11))
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, ROW(Int(12), table1Col1).IN(table2.SELECT(table2Col3, table3Col1)),
`(ROW($1, table1.col1) IN ((
SELECT table2.col3 AS "table2.col3",
table3.col1 AS "table3.col1"
FROM db.table2
)))`, int64(12))
}
func TestNOT_IN(t *testing.T) {
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, Float(1.11).NOT_IN(table1.SELECT(table1Col1)),
`($1 NOT IN ((
SELECT table1.col1 AS "table1.col1"
FROM db.table1
)))`, float64(1.11))
2019-06-05 17:15:20 +02:00
assertClauseSerialize(t, ROW(Int(12), table1Col1).NOT_IN(table2.SELECT(table2Col3, table3Col1)),
`(ROW($1, table1.col1) NOT IN ((
SELECT table2.col3 AS "table2.col3",
table3.col1 AS "table3.col1"
FROM db.table2
)))`, int64(12))
}