github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/_examples/golang-basics/example_test.go (about) 1 package main 2 3 import ( 4 "context" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 var ( 13 client ExampleService 14 ) 15 16 // func TestMain() 17 18 func init() { 19 go func() { 20 startServer() 21 }() 22 23 client = NewExampleServiceClient("http://0.0.0.0:4242", &http.Client{ 24 Timeout: time.Duration(2 * time.Second), 25 }) 26 time.Sleep(time.Millisecond * 500) 27 28 } 29 30 func TestPing(t *testing.T) { 31 err := client.Ping(context.Background()) 32 assert.NoError(t, err) 33 } 34 35 func TestStatus(t *testing.T) { 36 resp, err := client.Status(context.Background()) 37 assert.Equal(t, true, resp) 38 assert.NoError(t, err) 39 } 40 41 func TestGetUser(t *testing.T) { 42 { 43 arg1 := map[string]string{"a": "1"} 44 code, user, err := client.GetUser(context.Background(), arg1, 12) 45 assert.Equal(t, uint32(200), code) 46 assert.Equal(t, &User{ID: 12, Username: "hihi"}, user) 47 assert.NoError(t, err) 48 } 49 50 { 51 // Error case, expecting to receive an error 52 code, user, err := client.GetUser(context.Background(), nil, 911) 53 54 assert.True(t, IsErrorCode(err, ErrNotFound)) 55 assert.Nil(t, user) 56 assert.Equal(t, uint32(0), code) 57 assert.Error(t, err) 58 assert.Contains(t, err.Error(), "not found") 59 } 60 61 { 62 name, user, err := client.FindUser(context.Background(), &SearchFilter{Q: "joe"}) 63 assert.Equal(t, "joe", name) 64 assert.Equal(t, &User{ID: 123, Username: "joe"}, user) 65 assert.NoError(t, err) 66 } 67 }