github.com/cloudwego/hertz@v0.9.3/pkg/app/middlewares/client/sd/options_test.go (about) 1 /* 2 * Copyright 2022 CloudWeGo Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package sd 18 19 import ( 20 "context" 21 "testing" 22 23 "github.com/cloudwego/hertz/pkg/app/client/loadbalance" 24 "github.com/cloudwego/hertz/pkg/common/test/assert" 25 ) 26 27 func TestWithCustomizedAddrs(t *testing.T) { 28 var options []ServiceDiscoveryOption 29 options = append(options, WithCustomizedAddrs("127.0.0.1:8080", "/tmp/unix_ss")) 30 opts := &ServiceDiscoveryOptions{} 31 opts.Apply(options) 32 assert.Assert(t, opts.Resolver.Name() == "127.0.0.1:8080,/tmp/unix_ss") 33 res, err := opts.Resolver.Resolve(context.Background(), "") 34 assert.Assert(t, err == nil) 35 assert.Assert(t, res.Instances[0].Address().String() == "127.0.0.1:8080") 36 assert.Assert(t, res.Instances[1].Address().String() == "/tmp/unix_ss") 37 } 38 39 func TestWithLoadBalanceOptions(t *testing.T) { 40 balance := loadbalance.NewWeightedBalancer() 41 var options []ServiceDiscoveryOption 42 options = append(options, WithLoadBalanceOptions(balance, loadbalance.DefaultLbOpts)) 43 opts := &ServiceDiscoveryOptions{} 44 opts.Apply(options) 45 assert.Assert(t, opts.Balancer.Name() == "weight_random") 46 }