diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2025-01-04 16:13:45 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2025-01-04 16:13:45 +0100 |
| commit | 43b1e0c39171e207ff37a1e0d4844483bd6f3775 (patch) | |
| tree | 074ea03478ac120b1bf64db7f23a4827dad6532a /option/option_test.go | |
| parent | 807a25b638e38d7c0446bb728412fb16fd035035 (diff) | |
| download | go-gg-43b1e0c39171e207ff37a1e0d4844483bd6f3775.tar.gz | |
add SQL support
Diffstat (limited to 'option/option_test.go')
| -rw-r--r-- | option/option_test.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/option/option_test.go b/option/option_test.go index 2bac4f5..80e8e84 100644 --- a/option/option_test.go +++ b/option/option_test.go @@ -146,6 +146,35 @@ func TestFormat(t *testing.T) { AssertEqual(t, fmt.Sprintf("value is %#v", listOfOptions), "value is []option.Option[int]{<none>, 42}") } +func TestMarshalSQL(t *testing.T) { + value, err := None[string]().Value() + AssertEqual(t, err, nil) + AssertEqual(t, value, nil) + + value, err = Some("hello").Value() + AssertEqual(t, err, nil) + AssertEqual(t, value, "hello") + + _, err = Some(struct{}{}).Value() + AssertEqual(t, err.Error(), "unsupported type struct {}, a struct") +} + +func TestUnmarshalSQL(t *testing.T) { + var o1 Option[string] + err := o1.Scan(nil) + AssertEqual(t, err, nil) + AssertEqual(t, o1, None[string]()) + + var o2 Option[string] + err = o2.Scan("hello") + AssertEqual(t, err, nil) + AssertEqual(t, o2, Some("hello")) + + var o3 Option[struct{}] + err = o3.Scan("hello") + AssertEqual(t, err.Error(), "unsupported Scan, storing driver.Value type string into type *struct {}") +} + func TestMarshalAndUnmarshalJSON(t *testing.T) { type payload struct { N1 Option[int] `json:"n1"` |
