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  }