Move everything to better package structure
This commit is contained in:
parent
f6b4d3c6fd
commit
5149df8359
40 changed files with 241 additions and 86 deletions
types
119
types/json_test.go
Normal file
119
types/json_test.go
Normal file
|
@ -0,0 +1,119 @@
|
|||
package types
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestJSONString(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
j := JSON("hello")
|
||||
if j.String() != "hello" {
|
||||
t.Errorf("Expected %q, got %s", "hello", j.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONUnmarshal(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
type JSONTest struct {
|
||||
Name string
|
||||
Age int
|
||||
}
|
||||
var jt JSONTest
|
||||
|
||||
j := JSON(`{"Name":"hi","Age":15}`)
|
||||
err := j.Unmarshal(&jt)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if jt.Name != "hi" {
|
||||
t.Errorf("Expected %q, got %s", "hi", jt.Name)
|
||||
}
|
||||
if jt.Age != 15 {
|
||||
t.Errorf("Expected %v, got %v", 15, jt.Age)
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONMarshal(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
type JSONTest struct {
|
||||
Name string
|
||||
Age int
|
||||
}
|
||||
jt := JSONTest{
|
||||
Name: "hi",
|
||||
Age: 15,
|
||||
}
|
||||
|
||||
var j JSON
|
||||
err := j.Marshal(jt)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if j.String() != `{"Name":"hi","Age":15}` {
|
||||
t.Errorf("expected %s, got %s", `{"Name":"hi","Age":15}`, j.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONUnmarshalJSON(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
j := JSON(nil)
|
||||
|
||||
err := j.UnmarshalJSON(JSON(`"hi"`))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if j.String() != `"hi"` {
|
||||
t.Errorf("Expected %q, got %s", "hi", j.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONMarshalJSON(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
j := JSON(`"hi"`)
|
||||
res, err := j.MarshalJSON()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !bytes.Equal(res, []byte(`"hi"`)) {
|
||||
t.Errorf("Expected %q, got %v", `"hi"`, res)
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONValue(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
j := JSON(`{"Name":"hi","Age":15}`)
|
||||
v, err := j.Value()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !bytes.Equal(j, v.([]byte)) {
|
||||
t.Errorf("byte mismatch, %v %v", j, v)
|
||||
}
|
||||
}
|
||||
|
||||
func TestJSONScan(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
j := JSON{}
|
||||
|
||||
err := j.Scan(`"hello"`)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !bytes.Equal(j, []byte(`"hello"`)) {
|
||||
t.Errorf("bad []byte: %#v ≠ %#v\n", j, string([]byte(`"hello"`)))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue