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  }