jsonrpc: use testify in tests
This commit is contained in:
parent
ff4d1b5819
commit
790ed0730e
@ -9,6 +9,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SimpleServerHandler struct {
|
type SimpleServerHandler struct {
|
||||||
@ -71,62 +73,37 @@ func TestRPC(t *testing.T) {
|
|||||||
StringMatch func(t TestType, i2 int64) (out TestOut, err error)
|
StringMatch func(t TestType, i2 int64) (out TestOut, err error)
|
||||||
}
|
}
|
||||||
closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &client)
|
closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &client)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer closer()
|
defer closer()
|
||||||
|
|
||||||
// Add(int) error
|
// Add(int) error
|
||||||
|
|
||||||
if err := client.Add(2); err != nil {
|
assert.NoError(t, client.Add(2))
|
||||||
t.Fatal(err)
|
assert.Equal(t, 2, serverHandler.n)
|
||||||
}
|
|
||||||
|
|
||||||
if serverHandler.n != 2 {
|
|
||||||
t.Error("expected 2")
|
|
||||||
}
|
|
||||||
|
|
||||||
err = client.Add(-3546)
|
err = client.Add(-3546)
|
||||||
if err == nil {
|
assert.EqualError(t, err, "test")
|
||||||
t.Fatal("expected error")
|
|
||||||
}
|
|
||||||
if err.Error() != "test" {
|
|
||||||
t.Fatal("wrong error", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddGet(int) int
|
// AddGet(int) int
|
||||||
|
|
||||||
n := client.AddGet(3)
|
n := client.AddGet(3)
|
||||||
if n != 5 {
|
assert.Equal(t, 5, n)
|
||||||
t.Error("wrong n")
|
assert.Equal(t, 5, serverHandler.n)
|
||||||
}
|
|
||||||
|
|
||||||
if serverHandler.n != 5 {
|
|
||||||
t.Error("expected 5")
|
|
||||||
}
|
|
||||||
|
|
||||||
// StringMatch
|
// StringMatch
|
||||||
|
|
||||||
o, err := client.StringMatch(TestType{S: "0"}, 0)
|
o, err := client.StringMatch(TestType{S: "0"}, 0)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Error(err)
|
assert.Equal(t, "0", o.S)
|
||||||
}
|
assert.Equal(t, 0, o.I)
|
||||||
if o.S != "0" || o.I != 0 {
|
|
||||||
t.Error("wrong result")
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = client.StringMatch(TestType{S: "5"}, 5)
|
_, err = client.StringMatch(TestType{S: "5"}, 5)
|
||||||
if err == nil || err.Error() != ":(" {
|
assert.EqualError(t, err, ":(")
|
||||||
t.Error("wrong err")
|
|
||||||
}
|
|
||||||
|
|
||||||
o, err = client.StringMatch(TestType{S: "8", I: 8}, 8)
|
o, err = client.StringMatch(TestType{S: "8", I: 8}, 8)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Error(err)
|
assert.Equal(t, "8", o.S)
|
||||||
}
|
assert.Equal(t, 8, o.I)
|
||||||
if o.S != "8" || o.I != 8 {
|
|
||||||
t.Error("wrong result")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invalid client handlers
|
// Invalid client handlers
|
||||||
|
|
||||||
@ -134,24 +111,18 @@ func TestRPC(t *testing.T) {
|
|||||||
Add func(int)
|
Add func(int)
|
||||||
}
|
}
|
||||||
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noret)
|
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noret)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// this one should actually work
|
// this one should actually work
|
||||||
noret.Add(4)
|
noret.Add(4)
|
||||||
if serverHandler.n != 9 {
|
assert.Equal(t, 9, serverHandler.n)
|
||||||
t.Error("expected 9")
|
|
||||||
}
|
|
||||||
closer()
|
closer()
|
||||||
|
|
||||||
var noparam struct {
|
var noparam struct {
|
||||||
Add func()
|
Add func()
|
||||||
}
|
}
|
||||||
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noparam)
|
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &noparam)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// shouldn't panic
|
// shouldn't panic
|
||||||
noparam.Add()
|
noparam.Add()
|
||||||
@ -161,9 +132,7 @@ func TestRPC(t *testing.T) {
|
|||||||
AddGet func() (int, error)
|
AddGet func() (int, error)
|
||||||
}
|
}
|
||||||
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &erronly)
|
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &erronly)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = erronly.AddGet()
|
_, err = erronly.AddGet()
|
||||||
if err == nil || err.Error() != "RPC error (-32602): wrong param count" {
|
if err == nil || err.Error() != "RPC error (-32602): wrong param count" {
|
||||||
@ -175,9 +144,7 @@ func TestRPC(t *testing.T) {
|
|||||||
Add func(string) error
|
Add func(string) error
|
||||||
}
|
}
|
||||||
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &wrongtype)
|
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", &wrongtype)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = wrongtype.Add("not an int")
|
err = wrongtype.Add("not an int")
|
||||||
if err == nil || !strings.Contains(err.Error(), "RPC error (-32700):") || !strings.Contains(err.Error(), "json: cannot unmarshal string into Go value of type int") {
|
if err == nil || !strings.Contains(err.Error(), "RPC error (-32700):") || !strings.Contains(err.Error(), "json: cannot unmarshal string into Go value of type int") {
|
||||||
@ -189,9 +156,7 @@ func TestRPC(t *testing.T) {
|
|||||||
NotThere func(string) error
|
NotThere func(string) error
|
||||||
}
|
}
|
||||||
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", ¬found)
|
closer, err = NewClient("ws://"+testServ.Listener.Addr().String(), "SimpleServerHandler", ¬found)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = notfound.NotThere("hello?")
|
err = notfound.NotThere("hello?")
|
||||||
if err == nil || err.Error() != "RPC error (-32601): method 'SimpleServerHandler.NotThere' not found" {
|
if err == nil || err.Error() != "RPC error (-32601): method 'SimpleServerHandler.NotThere' not found" {
|
||||||
@ -238,9 +203,7 @@ func TestCtx(t *testing.T) {
|
|||||||
Test func(ctx context.Context)
|
Test func(ctx context.Context)
|
||||||
}
|
}
|
||||||
closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "CtxHandler", &client)
|
closer, err := NewClient("ws://"+testServ.Listener.Addr().String(), "CtxHandler", &client)
|
||||||
if err != nil {
|
assert.NoError(t, err)
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
Loading…
Reference in New Issue
Block a user