...

Source file src/github.com/jackc/pgtype/multirange_test.go

Documentation: github.com/jackc/pgtype

     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