go-micro.dev/v5@v5.12.0/registry/nats/nats_test.go (about) 1 package nats_test 2 3 import ( 4 "testing" 5 6 "go-micro.dev/v5/registry" 7 ) 8 9 func TestRegister(t *testing.T) { 10 service := registry.Service{Name: "test"} 11 assertNoError(t, e.registryOne.Register(&service)) 12 defer e.registryOne.Deregister(&service) 13 14 services, err := e.registryOne.ListServices() 15 assertNoError(t, err) 16 assertEqual(t, 3, len(services)) 17 18 services, err = e.registryTwo.ListServices() 19 assertNoError(t, err) 20 assertEqual(t, 3, len(services)) 21 } 22 23 func TestDeregister(t *testing.T) { 24 service1 := registry.Service{Name: "test-deregister", Version: "v1"} 25 service2 := registry.Service{Name: "test-deregister", Version: "v2"} 26 27 assertNoError(t, e.registryOne.Register(&service1)) 28 services, err := e.registryOne.GetService(service1.Name) 29 assertNoError(t, err) 30 assertEqual(t, 1, len(services)) 31 32 assertNoError(t, e.registryOne.Register(&service2)) 33 services, err = e.registryOne.GetService(service2.Name) 34 assertNoError(t, err) 35 assertEqual(t, 2, len(services)) 36 37 assertNoError(t, e.registryOne.Deregister(&service1)) 38 services, err = e.registryOne.GetService(service1.Name) 39 assertNoError(t, err) 40 assertEqual(t, 1, len(services)) 41 42 assertNoError(t, e.registryOne.Deregister(&service2)) 43 services, err = e.registryOne.GetService(service1.Name) 44 assertNoError(t, err) 45 assertEqual(t, 0, len(services)) 46 } 47 48 func TestGetService(t *testing.T) { 49 services, err := e.registryTwo.GetService("one") 50 assertNoError(t, err) 51 assertEqual(t, 1, len(services)) 52 assertEqual(t, "one", services[0].Name) 53 assertEqual(t, 1, len(services[0].Nodes)) 54 } 55 56 func TestGetServiceWithNoNodes(t *testing.T) { 57 services, err := e.registryOne.GetService("missing") 58 assertNoError(t, err) 59 assertEqual(t, 0, len(services)) 60 } 61 62 func TestGetServiceFromMultipleNodes(t *testing.T) { 63 services, err := e.registryOne.GetService("two") 64 assertNoError(t, err) 65 assertEqual(t, 1, len(services)) 66 assertEqual(t, "two", services[0].Name) 67 assertEqual(t, 2, len(services[0].Nodes)) 68 } 69 70 func BenchmarkGetService(b *testing.B) { 71 for n := 0; n < b.N; n++ { 72 services, err := e.registryTwo.GetService("one") 73 assertNoError(b, err) 74 assertEqual(b, 1, len(services)) 75 assertEqual(b, "one", services[0].Name) 76 } 77 } 78 79 func BenchmarkGetServiceWithNoNodes(b *testing.B) { 80 for n := 0; n < b.N; n++ { 81 services, err := e.registryOne.GetService("missing") 82 assertNoError(b, err) 83 assertEqual(b, 0, len(services)) 84 } 85 } 86 87 func BenchmarkGetServiceFromMultipleNodes(b *testing.B) { 88 for n := 0; n < b.N; n++ { 89 services, err := e.registryTwo.GetService("two") 90 assertNoError(b, err) 91 assertEqual(b, 1, len(services)) 92 assertEqual(b, "two", services[0].Name) 93 assertEqual(b, 2, len(services[0].Nodes)) 94 } 95 }