pgx/multirange_test.go

52 lines
1.1 KiB
Go

package pgtype
import (
"reflect"
"testing"
)
func TestParseUntypedTextMultirange(t *testing.T) {
tests := []struct {
src string
result UntypedTextMultirange
err error
}{
{
src: `{[1,2)}`,
result: UntypedTextMultirange{Elements: []string{`[1,2)`}},
err: nil,
},
{
src: `{[,),["foo", "bar"]}`,
result: UntypedTextMultirange{Elements: []string{`[,)`, `["foo", "bar"]`}},
err: nil,
},
{
src: `{}`,
result: UntypedTextMultirange{Elements: []string{}},
err: nil,
},
{
src: ` { (,) , [1,2] } `,
result: UntypedTextMultirange{Elements: []string{` (,) `, ` [1,2] `}},
err: nil,
},
{
src: `{["f""oo","b""ar")}`,
result: UntypedTextMultirange{Elements: []string{`["f""oo","b""ar")`}},
err: nil,
},
}
for i, tt := range tests {
r, err := ParseUntypedTextMultirange(tt.src)
if err != tt.err {
t.Errorf("%d. `%v`: expected err %v, got %v", i, tt.src, tt.err, err)
continue
}
if !reflect.DeepEqual(*r, tt.result) {
t.Errorf("%d: expected %+v to be parsed to %+v, but it was %+v", i, tt.src, tt.result, *r)
}
}
}