go-micro.dev/v5@v5.12.0/registry/nats/nats_environment_test.go (about) 1 package nats_test 2 3 import ( 4 "os" 5 "testing" 6 7 log "go-micro.dev/v5/logger" 8 "go-micro.dev/v5/registry" 9 "go-micro.dev/v5/registry/nats" 10 ) 11 12 type environment struct { 13 registryOne registry.Registry 14 registryTwo registry.Registry 15 registryThree registry.Registry 16 17 serviceOne registry.Service 18 serviceTwo registry.Service 19 20 nodeOne registry.Node 21 nodeTwo registry.Node 22 nodeThree registry.Node 23 } 24 25 var e environment 26 27 func TestMain(m *testing.M) { 28 natsURL := os.Getenv("NATS_URL") 29 if natsURL == "" { 30 log.Infof("NATS_URL is undefined - skipping tests") 31 return 32 } 33 34 e.registryOne = nats.NewNatsRegistry(registry.Addrs(natsURL), nats.Quorum(1)) 35 e.registryTwo = nats.NewNatsRegistry(registry.Addrs(natsURL), nats.Quorum(1)) 36 e.registryThree = nats.NewNatsRegistry(registry.Addrs(natsURL), nats.Quorum(1)) 37 38 e.serviceOne.Name = "one" 39 e.serviceOne.Version = "default" 40 e.serviceOne.Nodes = []*registry.Node{&e.nodeOne} 41 42 e.serviceTwo.Name = "two" 43 e.serviceTwo.Version = "default" 44 e.serviceTwo.Nodes = []*registry.Node{&e.nodeOne, &e.nodeTwo} 45 46 e.nodeOne.Id = "one" 47 e.nodeTwo.Id = "two" 48 e.nodeThree.Id = "three" 49 50 if err := e.registryOne.Register(&e.serviceOne); err != nil { 51 log.Fatal(err) 52 } 53 54 if err := e.registryOne.Register(&e.serviceTwo); err != nil { 55 log.Fatal(err) 56 } 57 58 result := m.Run() 59 60 if err := e.registryOne.Deregister(&e.serviceOne); err != nil { 61 log.Fatal(err) 62 } 63 64 if err := e.registryOne.Deregister(&e.serviceTwo); err != nil { 65 log.Fatal(err) 66 } 67 68 os.Exit(result) 69 }