112 lines
2.6 KiB
Go
112 lines
2.6 KiB
Go
package mydb
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"git.hexq.cn/tiglog/mydb/internal/adapter"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestComparison(t *testing.T) {
|
|
testTimeVal := time.Now()
|
|
|
|
testCases := []struct {
|
|
expects *adapter.Comparison
|
|
result *Comparison
|
|
}{
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorGreaterThanOrEqualTo, 1),
|
|
Gte(1),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorLessThanOrEqualTo, 22),
|
|
Lte(22),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorEqual, 6),
|
|
Eq(6),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorNotEqual, 67),
|
|
NotEq(67),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorGreaterThan, 4),
|
|
Gt(4),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorLessThan, 47),
|
|
Lt(47),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorIn, []interface{}{1, 22, 34}),
|
|
In(1, 22, 34),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorGreaterThan, testTimeVal),
|
|
After(testTimeVal),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorLessThan, testTimeVal),
|
|
Before(testTimeVal),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorGreaterThanOrEqualTo, testTimeVal),
|
|
OnOrAfter(testTimeVal),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorLessThanOrEqualTo, testTimeVal),
|
|
OnOrBefore(testTimeVal),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorBetween, []interface{}{11, 35}),
|
|
Between(11, 35),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorNotBetween, []interface{}{11, 35}),
|
|
NotBetween(11, 35),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorIs, 178),
|
|
Is(178),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorIsNot, 32),
|
|
IsNot(32),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorIs, nil),
|
|
IsNull(),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorIsNot, nil),
|
|
IsNotNull(),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorLike, "%a%"),
|
|
Like("%a%"),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorNotLike, "%z%"),
|
|
NotLike("%z%"),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorRegExp, ".*"),
|
|
RegExp(".*"),
|
|
},
|
|
{
|
|
adapter.NewComparisonOperator(adapter.ComparisonOperatorNotRegExp, ".*"),
|
|
NotRegExp(".*"),
|
|
},
|
|
{
|
|
adapter.NewCustomComparisonOperator("~", 56),
|
|
Op("~", 56),
|
|
},
|
|
}
|
|
|
|
for i := range testCases {
|
|
assert.Equal(t, testCases[i].expects, testCases[i].result.Comparison)
|
|
}
|
|
}
|