test: add more tests (#1856)
This commit is contained in:
49
core/fs/temps_test.go
Normal file
49
core/fs/temps_test.go
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
package fs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestTempFileWithText(t *testing.T) {
|
||||||
|
f, err := TempFileWithText("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
if f == nil {
|
||||||
|
t.Error("TempFileWithText returned nil")
|
||||||
|
}
|
||||||
|
if f.Name() == "" {
|
||||||
|
t.Error("TempFileWithText returned empty file name")
|
||||||
|
}
|
||||||
|
defer os.Remove(f.Name())
|
||||||
|
|
||||||
|
bs, err := ioutil.ReadAll(f)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
if len(bs) != 4 {
|
||||||
|
t.Error("TempFileWithText returned wrong file size")
|
||||||
|
}
|
||||||
|
if f.Close() != nil {
|
||||||
|
t.Error("TempFileWithText returned error on close")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTempFilenameWithText(t *testing.T) {
|
||||||
|
f, err := TempFilenameWithText("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
if f == "" {
|
||||||
|
t.Error("TempFilenameWithText returned empty file name")
|
||||||
|
}
|
||||||
|
defer os.Remove(f)
|
||||||
|
|
||||||
|
bs, err := ioutil.ReadFile(f)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
if len(bs) != 4 {
|
||||||
|
t.Error("TempFilenameWithText returned wrong file size")
|
||||||
|
}
|
||||||
|
}
|
||||||
87
core/jsonx/json_test.go
Normal file
87
core/jsonx/json_test.go
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
package jsonx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMarshal(t *testing.T) {
|
||||||
|
var v = struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}{
|
||||||
|
Name: "John",
|
||||||
|
Age: 30,
|
||||||
|
}
|
||||||
|
bs, err := Marshal(v)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, `{"name":"John","age":30}`, string(bs))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshal(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30}`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := Unmarshal([]byte(s), &v)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, "John", v.Name)
|
||||||
|
assert.Equal(t, 30, v.Age)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalError(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := Unmarshal([]byte(s), &v)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalFromString(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30}`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := UnmarshalFromString(s, &v)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, "John", v.Name)
|
||||||
|
assert.Equal(t, 30, v.Age)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalFromStringError(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := UnmarshalFromString(s, &v)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalFromRead(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30}`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := UnmarshalFromReader(strings.NewReader(s), &v)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, "John", v.Name)
|
||||||
|
assert.Equal(t, 30, v.Age)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnmarshalFromReaderError(t *testing.T) {
|
||||||
|
const s = `{"name":"John","age":30`
|
||||||
|
var v struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Age int `json:"age"`
|
||||||
|
}
|
||||||
|
err := UnmarshalFromReader(strings.NewReader(s), &v)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
}
|
||||||
@@ -158,3 +158,32 @@ func TestDo_BadRequest(t *testing.T) {
|
|||||||
_, err = Do(context.Background(), http.MethodPost, "/nodes/:val", val5)
|
_, err = Do(context.Background(), http.MethodPost, "/nodes/:val", val5)
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDo_Json(t *testing.T) {
|
||||||
|
type Data struct {
|
||||||
|
Key string `path:"key"`
|
||||||
|
Value int `form:"value"`
|
||||||
|
Header string `header:"X-Header"`
|
||||||
|
Body chan int `json:"body"`
|
||||||
|
}
|
||||||
|
|
||||||
|
rt := router.NewRouter()
|
||||||
|
err := rt.Handle(http.MethodPost, "/nodes/:key",
|
||||||
|
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var req Data
|
||||||
|
assert.Nil(t, httpx.Parse(r, &req))
|
||||||
|
}))
|
||||||
|
assert.Nil(t, err)
|
||||||
|
|
||||||
|
svr := httptest.NewServer(http.HandlerFunc(rt.ServeHTTP))
|
||||||
|
defer svr.Close()
|
||||||
|
|
||||||
|
data := Data{
|
||||||
|
Key: "foo",
|
||||||
|
Value: 10,
|
||||||
|
Header: "my-header",
|
||||||
|
Body: make(chan int),
|
||||||
|
}
|
||||||
|
_, err = Do(context.Background(), http.MethodPost, svr.URL+"/nodes/:key", data)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
}
|
||||||
|
|||||||
@@ -129,7 +129,18 @@ func TestWriteJsonTimeout(t *testing.T) {
|
|||||||
// only log it and ignore
|
// only log it and ignore
|
||||||
w := tracedResponseWriter{
|
w := tracedResponseWriter{
|
||||||
headers: make(map[string][]string),
|
headers: make(map[string][]string),
|
||||||
timeout: true,
|
err: http.ErrHandlerTimeout,
|
||||||
|
}
|
||||||
|
msg := message{Name: "anyone"}
|
||||||
|
WriteJson(&w, http.StatusOK, msg)
|
||||||
|
assert.Equal(t, http.StatusOK, w.code)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestWriteJsonError(t *testing.T) {
|
||||||
|
// only log it and ignore
|
||||||
|
w := tracedResponseWriter{
|
||||||
|
headers: make(map[string][]string),
|
||||||
|
err: errors.New("foo"),
|
||||||
}
|
}
|
||||||
msg := message{Name: "anyone"}
|
msg := message{Name: "anyone"}
|
||||||
WriteJson(&w, http.StatusOK, msg)
|
WriteJson(&w, http.StatusOK, msg)
|
||||||
@@ -162,8 +173,8 @@ type tracedResponseWriter struct {
|
|||||||
hasBody bool
|
hasBody bool
|
||||||
code int
|
code int
|
||||||
lessWritten bool
|
lessWritten bool
|
||||||
timeout bool
|
|
||||||
wroteHeader bool
|
wroteHeader bool
|
||||||
|
err error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *tracedResponseWriter) Header() http.Header {
|
func (w *tracedResponseWriter) Header() http.Header {
|
||||||
@@ -171,8 +182,8 @@ func (w *tracedResponseWriter) Header() http.Header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (w *tracedResponseWriter) Write(bytes []byte) (n int, err error) {
|
func (w *tracedResponseWriter) Write(bytes []byte) (n int, err error) {
|
||||||
if w.timeout {
|
if w.err != nil {
|
||||||
return 0, http.ErrHandlerTimeout
|
return 0, w.err
|
||||||
}
|
}
|
||||||
|
|
||||||
n, err = w.builder.Write(bytes)
|
n, err = w.builder.Write(bytes)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ const (
|
|||||||
type kubeBuilder struct{}
|
type kubeBuilder struct{}
|
||||||
|
|
||||||
func (b *kubeBuilder) Build(target resolver.Target, cc resolver.ClientConn,
|
func (b *kubeBuilder) Build(target resolver.Target, cc resolver.ClientConn,
|
||||||
opts resolver.BuildOptions) (resolver.Resolver, error) {
|
_ resolver.BuildOptions) (resolver.Resolver, error) {
|
||||||
svc, err := kube.ParseTarget(target)
|
svc, err := kube.ParseTarget(target)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
13
zrpc/resolver/register_test.go
Normal file
13
zrpc/resolver/register_test.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package resolver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRegister(t *testing.T) {
|
||||||
|
assert.NotPanics(t, func() {
|
||||||
|
Register()
|
||||||
|
})
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user