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  }