github.com/annwntech/go-micro/v2@v2.9.5/broker/nats/nats_test.go (about) 1 package nats 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/annwntech/go-micro/v2/broker" 8 nats "github.com/nats-io/nats.go" 9 ) 10 11 var addrTestCases = []struct { 12 name string 13 description string 14 addrs map[string]string // expected address : set address 15 }{ 16 { 17 "brokerOpts", 18 "set broker addresses through a broker.Option in constructor", 19 map[string]string{ 20 "nats://192.168.10.1:5222": "192.168.10.1:5222", 21 "nats://10.20.10.0:4222": "10.20.10.0:4222"}, 22 }, 23 { 24 "brokerInit", 25 "set broker addresses through a broker.Option in broker.Init()", 26 map[string]string{ 27 "nats://192.168.10.1:5222": "192.168.10.1:5222", 28 "nats://10.20.10.0:4222": "10.20.10.0:4222"}, 29 }, 30 { 31 "natsOpts", 32 "set broker addresses through the nats.Option in constructor", 33 map[string]string{ 34 "nats://192.168.10.1:5222": "192.168.10.1:5222", 35 "nats://10.20.10.0:4222": "10.20.10.0:4222"}, 36 }, 37 { 38 "default", 39 "check if default Address is set correctly", 40 map[string]string{ 41 "nats://127.0.0.1:4222": "", 42 }, 43 }, 44 } 45 46 // TestInitAddrs tests issue #100. Ensures that if the addrs is set by an option in init it will be used. 47 func TestInitAddrs(t *testing.T) { 48 49 for _, tc := range addrTestCases { 50 t.Run(fmt.Sprintf("%s: %s", tc.name, tc.description), func(t *testing.T) { 51 52 var br broker.Broker 53 var addrs []string 54 55 for _, addr := range tc.addrs { 56 addrs = append(addrs, addr) 57 } 58 59 switch tc.name { 60 case "brokerOpts": 61 // we know that there are just two addrs in the dict 62 br = NewBroker(broker.Addrs(addrs[0], addrs[1])) 63 br.Init() 64 case "brokerInit": 65 br = NewBroker() 66 // we know that there are just two addrs in the dict 67 br.Init(broker.Addrs(addrs[0], addrs[1])) 68 case "natsOpts": 69 nopts := nats.GetDefaultOptions() 70 nopts.Servers = addrs 71 br = NewBroker(Options(nopts)) 72 br.Init() 73 case "default": 74 br = NewBroker() 75 br.Init() 76 } 77 78 natsBroker, ok := br.(*natsBroker) 79 if !ok { 80 t.Fatal("Expected broker to be of types *natsBroker") 81 } 82 // check if the same amount of addrs we set has actually been set, default 83 // have only 1 address nats://127.0.0.1:4222 (current nats code) or 84 // nats://localhost:4222 (older code version) 85 if len(natsBroker.addrs) != len(tc.addrs) && tc.name != "default" { 86 t.Errorf("Expected Addr count = %d, Actual Addr count = %d", 87 len(natsBroker.addrs), len(tc.addrs)) 88 } 89 90 for _, addr := range natsBroker.addrs { 91 _, ok := tc.addrs[addr] 92 if !ok { 93 t.Errorf("Expected '%s' has not been set", addr) 94 } 95 } 96 }) 97 } 98 }