38 lines
		
	
	
		
			764 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			764 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package mock
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/micro/go-micro/errors"
 | 
						|
 | 
						|
	"golang.org/x/net/context"
 | 
						|
)
 | 
						|
 | 
						|
func TestClient(t *testing.T) {
 | 
						|
	type TestResponse struct {
 | 
						|
		Param string
 | 
						|
	}
 | 
						|
 | 
						|
	response := []MockResponse{
 | 
						|
		{Method: "Foo.Bar", Response: map[string]interface{}{"foo": "bar"}},
 | 
						|
		{Method: "Foo.Struct", Response: &TestResponse{Param: "aparam"}},
 | 
						|
		{Method: "Foo.Fail", Error: errors.InternalServerError("go.mock", "failed")},
 | 
						|
	}
 | 
						|
 | 
						|
	c := NewClient(Response("go.mock", response))
 | 
						|
 | 
						|
	for _, r := range response {
 | 
						|
		req := c.NewJsonRequest("go.mock", r.Method, map[string]interface{}{"foo": "bar"})
 | 
						|
		var rsp interface{}
 | 
						|
 | 
						|
		err := c.Call(context.TODO(), req, &rsp)
 | 
						|
 | 
						|
		if err != r.Error {
 | 
						|
			t.Fatalf("Expecter error %v got %v", r.Error, err)
 | 
						|
		}
 | 
						|
 | 
						|
		t.Log(rsp)
 | 
						|
	}
 | 
						|
 | 
						|
}
 |