From 963911f02bcb2b28528be0b133ab56ccd52721ee Mon Sep 17 00:00:00 2001 From: Yun Long Date: Fri, 20 Aug 2021 15:27:07 +0800 Subject: [PATCH] [proxy]: Add dynamic service test --- pkg/filter/proxy/server_test.go | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/pkg/filter/proxy/server_test.go b/pkg/filter/proxy/server_test.go index 072d7afab8..8b1886b051 100644 --- a/pkg/filter/proxy/server_test.go +++ b/pkg/filter/proxy/server_test.go @@ -24,6 +24,7 @@ import ( "testing" "github.com/megaease/easegress/pkg/context/contexttest" + "github.com/megaease/easegress/pkg/object/serviceregistry" "github.com/megaease/easegress/pkg/util/hashtool" "github.com/megaease/easegress/pkg/util/httpheader" ) @@ -310,3 +311,48 @@ func TestStaticServers(t *testing.T) { } } } + +func TestDynamicService(t *testing.T) { + loadBalance := &LoadBalance{Policy: PolicyRandom} + s := &servers{ + poolSpec: &PoolSpec{ + LoadBalance: loadBalance, + }, + } + + instances := []*serviceregistry.ServiceInstanceSpec{ + { + RegistryName: "registry-test1", + ServiceName: "service-test1", + InstanceID: "instance-test1", + HostIP: "127.0.0.1", + Port: 1111, + }, + { + RegistryName: "registry-test1", + ServiceName: "service-test1", + InstanceID: "instance-test2", + HostIP: "127.0.0.1", + Port: 2222, + }, + } + + serviceInstanceSpecs := make(map[string]*serviceregistry.ServiceInstanceSpec) + for _, instance := range instances { + serviceInstanceSpecs[instance.Key()] = instance + } + + s.useService(serviceInstanceSpecs) + + wantStatic := &staticServers{ + lb: *loadBalance, + servers: []*Server{ + {URL: "http://127.0.0.1:1111"}, + {URL: "http://127.0.0.1:2222"}, + }, + } + + if !reflect.DeepEqual(wantStatic, s.static) { + t.Fatalf("want: %+v\ngot :%+v\n", wantStatic, s.static) + } +}