add function test
This commit is contained in:
		
							
								
								
									
										55
									
								
								function_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								function_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | package micro | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"sync" | ||||||
|  | 	"testing" | ||||||
|  |  | ||||||
|  | 	"github.com/micro/go-micro/registry/mock" | ||||||
|  | 	proto "github.com/micro/go-micro/server/debug/proto" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/net/context" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func TestFunction(t *testing.T) { | ||||||
|  | 	var wg sync.WaitGroup | ||||||
|  | 	wg.Add(1) | ||||||
|  |  | ||||||
|  | 	// create service | ||||||
|  | 	fn := NewFunction( | ||||||
|  | 		Name("test.function"), | ||||||
|  | 		Registry(mock.NewRegistry()), | ||||||
|  | 		AfterStart(func() error { | ||||||
|  | 			wg.Done() | ||||||
|  | 			return nil | ||||||
|  | 		}), | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	// we can't test fn.Init as it parses the command line | ||||||
|  | 	// fn.Init() | ||||||
|  |  | ||||||
|  | 	go func() { | ||||||
|  | 		// wait for start | ||||||
|  | 		wg.Wait() | ||||||
|  |  | ||||||
|  | 		// test call debug | ||||||
|  | 		req := fn.Client().NewRequest( | ||||||
|  | 			"test.function", | ||||||
|  | 			"Debug.Health", | ||||||
|  | 			new(proto.HealthRequest), | ||||||
|  | 		) | ||||||
|  |  | ||||||
|  | 		rsp := new(proto.HealthResponse) | ||||||
|  |  | ||||||
|  | 		err := fn.Client().Call(context.TODO(), req, rsp) | ||||||
|  | 		if err != nil { | ||||||
|  | 			t.Fatal(err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if rsp.Status != "ok" { | ||||||
|  | 			t.Fatalf("function response: %s", rsp.Status) | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
|  |  | ||||||
|  | 	// run service | ||||||
|  | 	fn.Run() | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user