66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package mucp
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"reflect"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/micro/go-micro/v3/registry"
 | |
| )
 | |
| 
 | |
| type testHandler struct{}
 | |
| 
 | |
| type testRequest struct{}
 | |
| 
 | |
| type testResponse struct{}
 | |
| 
 | |
| func (t *testHandler) Test(ctx context.Context, req *testRequest, rsp *testResponse) error {
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func TestExtractEndpoint(t *testing.T) {
 | |
| 	handler := &testHandler{}
 | |
| 	typ := reflect.TypeOf(handler)
 | |
| 
 | |
| 	var endpoints []*registry.Endpoint
 | |
| 
 | |
| 	for m := 0; m < typ.NumMethod(); m++ {
 | |
| 		if e := extractEndpoint(typ.Method(m)); e != nil {
 | |
| 			endpoints = append(endpoints, e)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	if i := len(endpoints); i != 1 {
 | |
| 		t.Errorf("Expected 1 endpoint, have %d", i)
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Name != "Test" {
 | |
| 		t.Errorf("Expected handler Test, got %s", endpoints[0].Name)
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Request == nil {
 | |
| 		t.Error("Expected non nil request")
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Response == nil {
 | |
| 		t.Error("Expected non nil request")
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Request.Name != "testRequest" {
 | |
| 		t.Errorf("Expected testRequest got %s", endpoints[0].Request.Name)
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Response.Name != "testResponse" {
 | |
| 		t.Errorf("Expected testResponse got %s", endpoints[0].Response.Name)
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Request.Type != "testRequest" {
 | |
| 		t.Errorf("Expected testRequest type got %s", endpoints[0].Request.Type)
 | |
| 	}
 | |
| 
 | |
| 	if endpoints[0].Response.Type != "testResponse" {
 | |
| 		t.Errorf("Expected testResponse type got %s", endpoints[0].Response.Type)
 | |
| 	}
 | |
| 
 | |
| }
 |