1 package pgtype
2
3 import (
4 "reflect"
5 "testing"
6 )
7
8 func TestParseUntypedTextMultirange(t *testing.T) {
9 tests := []struct {
10 src string
11 result UntypedTextMultirange
12 err error
13 }{
14 {
15 src: `{[1,2)}`,
16 result: UntypedTextMultirange{Elements: []string{`[1,2)`}},
17 err: nil,
18 },
19 {
20 src: `{[,),["foo", "bar"]}`,
21 result: UntypedTextMultirange{Elements: []string{`[,)`, `["foo", "bar"]`}},
22 err: nil,
23 },
24 {
25 src: `{}`,
26 result: UntypedTextMultirange{Elements: []string{}},
27 err: nil,
28 },
29 {
30 src: ` { (,) , [1,2] } `,
31 result: UntypedTextMultirange{Elements: []string{` (,) `, ` [1,2] `}},
32 err: nil,
33 },
34 {
35 src: `{["f""oo","b""ar")}`,
36 result: UntypedTextMultirange{Elements: []string{`["f""oo","b""ar")`}},
37 err: nil,
38 },
39 }
40 for i, tt := range tests {
41 r, err := ParseUntypedTextMultirange(tt.src)
42 if err != tt.err {
43 t.Errorf("%d. `%v`: expected err %v, got %v", i, tt.src, tt.err, err)
44 continue
45 }
46
47 if !reflect.DeepEqual(*r, tt.result) {
48 t.Errorf("%d: expected %+v to be parsed to %+v, but it was %+v", i, tt.src, tt.result, *r)
49 }
50 }
51 }
52
View as plain text