7e30272020
ExprPtrs dereferences []*T values, skips nil entries, and maps survivors through a converter. Co-authored-by: Cursor <cursoragent@cursor.com>
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package dbx
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestStringKSUIDExpr(t *testing.T) {
|
|
id := NewStringKSUID()
|
|
expr := StringKSUIDExpr(id)
|
|
require.NotNil(t, expr)
|
|
assert.Equal(t, expr, id.Expr())
|
|
|
|
nilExpr := StringKSUIDExpr(NilStringKSUID)
|
|
require.NotNil(t, nilExpr)
|
|
assert.Equal(t, nilExpr, NilStringKSUID.Expr())
|
|
}
|
|
|
|
func TestBinaryKSUIDExpr(t *testing.T) {
|
|
id := NewBinaryKSUID()
|
|
expr := BinaryKSUIDExpr(id)
|
|
require.NotNil(t, expr)
|
|
assert.Equal(t, expr, id.Expr())
|
|
|
|
nilExpr := BinaryKSUIDExpr(NilBinaryKSUID)
|
|
require.NotNil(t, nilExpr)
|
|
assert.Equal(t, nilExpr, NilBinaryKSUID.Expr())
|
|
}
|
|
|
|
func TestExprPtrs_StringKSUID(t *testing.T) {
|
|
a := NewStringKSUID()
|
|
b := NewStringKSUID()
|
|
exprs := ExprPtrs([]*StringKSUID{&a, nil, &b}, StringKSUIDExpr)
|
|
require.Len(t, exprs, 2)
|
|
}
|
|
|
|
func TestExprPtrs_BinaryKSUID(t *testing.T) {
|
|
a := NewBinaryKSUID()
|
|
exprs := ExprPtrs([]*BinaryKSUID{&a, nil}, BinaryKSUIDExpr)
|
|
require.Len(t, exprs, 1)
|
|
assert.NotNil(t, exprs[0])
|
|
}
|
|
|
|
func TestExprValues_StringKSUID(t *testing.T) {
|
|
a := NewStringKSUID()
|
|
b := NewStringKSUID()
|
|
exprs := ExprValues([]*StringKSUID{&a, &b}, func(id *StringKSUID) Expression {
|
|
return id.Expr()
|
|
})
|
|
require.Len(t, exprs, 2)
|
|
}
|
|
|
|
func TestExprValues_BinaryKSUID(t *testing.T) {
|
|
a := NewBinaryKSUID()
|
|
exprs := ExprValues([]BinaryKSUID{a}, BinaryKSUIDExpr)
|
|
require.Len(t, exprs, 1)
|
|
assert.NotNil(t, exprs[0])
|
|
}
|