mirror of
https://github.com/go-micro/go-micro.git
synced 2025-05-31 21:59:42 +02:00
70 lines
1.5 KiB
Go
70 lines
1.5 KiB
Go
package nats_test
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
log "go-micro.dev/v4/logger"
|
|
"go-micro.dev/v4/registry"
|
|
"github.com/asim/go-micro/plugins/registry/nats/v4"
|
|
)
|
|
|
|
type environment struct {
|
|
registryOne registry.Registry
|
|
registryTwo registry.Registry
|
|
registryThree registry.Registry
|
|
|
|
serviceOne registry.Service
|
|
serviceTwo registry.Service
|
|
|
|
nodeOne registry.Node
|
|
nodeTwo registry.Node
|
|
nodeThree registry.Node
|
|
}
|
|
|
|
var e environment
|
|
|
|
func TestMain(m *testing.M) {
|
|
natsURL := os.Getenv("NATS_URL")
|
|
if natsURL == "" {
|
|
log.Infof("NATS_URL is undefined - skipping tests")
|
|
return
|
|
}
|
|
|
|
e.registryOne = nats.NewRegistry(registry.Addrs(natsURL), nats.Quorum(1))
|
|
e.registryTwo = nats.NewRegistry(registry.Addrs(natsURL), nats.Quorum(1))
|
|
e.registryThree = nats.NewRegistry(registry.Addrs(natsURL), nats.Quorum(1))
|
|
|
|
e.serviceOne.Name = "one"
|
|
e.serviceOne.Version = "default"
|
|
e.serviceOne.Nodes = []*registry.Node{&e.nodeOne}
|
|
|
|
e.serviceTwo.Name = "two"
|
|
e.serviceTwo.Version = "default"
|
|
e.serviceTwo.Nodes = []*registry.Node{&e.nodeOne, &e.nodeTwo}
|
|
|
|
e.nodeOne.Id = "one"
|
|
e.nodeTwo.Id = "two"
|
|
e.nodeThree.Id = "three"
|
|
|
|
if err := e.registryOne.Register(&e.serviceOne); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
if err := e.registryOne.Register(&e.serviceTwo); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
result := m.Run()
|
|
|
|
if err := e.registryOne.Deregister(&e.serviceOne); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
if err := e.registryOne.Deregister(&e.serviceTwo); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
os.Exit(result)
|
|
}
|