forked from janelia-flyem/serviceproxy
/
serviceproxy_test.go
99 lines (79 loc) · 2.14 KB
/
serviceproxy_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package main
import (
"github.com/janelia-flyem/serviceproxy/proxy"
"github.com/janelia-flyem/serviceproxy/register"
"os"
"testing"
"time"
)
// TestProxyRegister checks that serviceproxy can be registered as a serf agent.
func TestProxyRegister(t *testing.T) {
// register proxy
serfagent := register.NewAgent("proxy", 15333)
err := serfagent.RegisterService("")
// make sure service is up
time.Sleep(1 * time.Second)
if err != nil {
t.Errorf("Error when registering")
return
}
port := serfagent.GetSerfPort()
if port != 7946 {
t.Errorf("Proxy not registered at port 7946")
return
}
// TODO: check that service is alive
err = serfagent.UnRegisterService()
if err != nil {
t.Errorf("Failed to unregister proxy")
return
}
}
// TestServiceRegister checks that a client can be registered as a serf agent.
func TestServiceRegister(t *testing.T) {
// register proxy
serfagent := register.NewAgent("adder", 23230)
err := serfagent.RegisterService("")
// make sure service is up
time.Sleep(1 * time.Second)
if err != nil {
t.Errorf("Error when registering")
return
}
port := serfagent.GetSerfPort()
if port <= 25000 {
t.Errorf("Service port not found in correct range")
return
}
// TODO check that service is alive
err = serfagent.UnRegisterService()
if err != nil {
t.Errorf("Failed to unregister service")
return
}
}
// TestServiceMemberIdentification checks that a client can register with the serviceproxy.
func TestServiceMemberIdentification(t *testing.T) {
// register proxy
serfagent := register.NewAgent("proxy", 15333)
serfagent.RegisterService("")
// make sure service is up
time.Sleep(1 * time.Second)
// register dummy adder service
serfagent2 := register.NewAgent("adder", 23230)
hname, _ := os.Hostname()
serfagent2.RegisterService(hname + ":7946")
// make sure service is up
time.Sleep(1 * time.Second)
var registry proxy.Registry
registry.UpdateRegistry()
members := registry.GetServicesSlice()
if len(members) != 1 {
t.Errorf("Number service members %d (should be 1)", len(members))
return
}
if members[0] != "adder" {
t.Errorf("adder should be the service member")
return
}
}