diff options
| author | Brad Fitzpatrick <bradfitz@golang.org> | 2012-01-19 09:27:45 -0800 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2012-01-19 09:27:45 -0800 |
| commit | bc0139b4b3d642b7ffbb55d7fbc88b4dcb1db4ec (patch) | |
| tree | db9cf9b77070a8292ab7fb5ace6ecaf4155f0c5f /src/pkg/exp/sql/convert_test.go | |
| parent | 9e5f62ac0c7259988fb616d6a91625befa1db62f (diff) | |
| download | go-bc0139b4b3d642b7ffbb55d7fbc88b4dcb1db4ec.tar.xz | |
exp/sql: rename NullableString to NullString and allow its use as a parameter
Prep for Issue 2699
R=rsc
CC=golang-dev
https://golang.org/cl/5536045
Diffstat (limited to 'src/pkg/exp/sql/convert_test.go')
| -rw-r--r-- | src/pkg/exp/sql/convert_test.go | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/pkg/exp/sql/convert_test.go b/src/pkg/exp/sql/convert_test.go index 702ba4399d..8c0cafc150 100644 --- a/src/pkg/exp/sql/convert_test.go +++ b/src/pkg/exp/sql/convert_test.go @@ -5,6 +5,7 @@ package sql import ( + "exp/sql/driver" "fmt" "reflect" "testing" @@ -154,8 +155,8 @@ func TestConversions(t *testing.T) { } } -func TestNullableString(t *testing.T) { - var ns NullableString +func TestNullString(t *testing.T) { + var ns NullString convertAssign(&ns, []byte("foo")) if !ns.Valid { t.Errorf("expecting not null") @@ -171,3 +172,35 @@ func TestNullableString(t *testing.T) { t.Errorf("expecting blank on nil; got %q", ns.String) } } + +type valueConverterTest struct { + c driver.ValueConverter + in, out interface{} + err string +} + +var valueConverterTests = []valueConverterTest{ + {driver.DefaultParameterConverter, NullString{"hi", true}, "hi", ""}, + {driver.DefaultParameterConverter, NullString{"", false}, nil, ""}, +} + +func TestValueConverters(t *testing.T) { + for i, tt := range valueConverterTests { + out, err := tt.c.ConvertValue(tt.in) + goterr := "" + if err != nil { + goterr = err.Error() + } + if goterr != tt.err { + t.Errorf("test %d: %s(%T(%v)) error = %q; want error = %q", + i, tt.c, tt.in, tt.in, goterr, tt.err) + } + if tt.err != "" { + continue + } + if !reflect.DeepEqual(out, tt.out) { + t.Errorf("test %d: %s(%T(%v)) = %v (%T); want %v (%T)", + i, tt.c, tt.in, tt.in, out, out, tt.out, tt.out) + } + } +} |
