-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathtopom_api_test.go
More file actions
108 lines (80 loc) · 2.38 KB
/
topom_api_test.go
File metadata and controls
108 lines (80 loc) · 2.38 KB
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
100
101
102
103
104
105
106
107
108
// Copyright 2016 CodisLabs. All Rights Reserved.
// Licensed under the MIT (MIT-LICENSE.txt) license.
package topom
import (
"testing"
"pika/codis/v2/pkg/models"
"pika/codis/v2/pkg/utils/assert"
"pika/codis/v2/pkg/utils/log"
)
func newApiClient(t *Topom) *ApiClient {
c := NewApiClient(t.model.AdminAddr)
c.SetXAuth(t.config.ProductName)
return c
}
func TestApiTopom(x *testing.T) {
t := openTopom()
defer t.Close()
c := newApiClient(t)
o, err := c.Model()
assert.MustNoError(err)
assert.Must(o != nil)
assert.MustNoError(c.XPing())
s, err := c.Stats()
assert.MustNoError(err)
assert.Must(s != nil)
assert.MustNoError(c.LogLevel(log.LevelError))
assert.MustNoError(c.Shutdown())
}
func TestApiSlots(x *testing.T) {
t := openTopom()
defer t.Close()
s := newFakeServer()
defer s.Close()
const sid = 100
const gid = 200
c := newApiClient(t)
assert.MustNoError(c.CreateGroup(gid))
assert.MustNoError(c.GroupAddServer(gid, "", s.Addr))
assert.MustNoError(c.SlotCreateAction(sid, gid))
assert.MustNoError(c.SlotRemoveAction(sid))
assert.MustNoError(c.SlotCreateActionRange(0, t.config.MaxSlotNum-1, gid))
assert.MustNoError(c.SetSlotActionInterval(2000))
assert.MustNoError(c.SetSlotActionDisabled(true))
assert.MustNoError(c.SlotsAssignGroup([]*models.SlotMapping{
&models.SlotMapping{Id: sid, GroupId: gid},
}))
slots, err := c.Slots()
assert.MustNoError(err)
assert.Must(len(slots) == t.config.MaxSlotNum)
assert.Must(slots[sid].BackendAddr == s.Addr)
}
func TestApiGroup(x *testing.T) {
t := openTopom()
defer t.Close()
s1 := newFakeServer()
defer s1.Close()
s2 := newFakeServer()
defer s2.Close()
const gid = 100
c := newApiClient(t)
assert.MustNoError(c.CreateGroup(gid))
assert.MustNoError(c.GroupAddServer(gid, "", s1.Addr))
assert.MustNoError(c.GroupAddServer(gid, "", s2.Addr))
assert.MustNoError(c.SyncCreateAction(s1.Addr))
assert.MustNoError(c.SyncRemoveAction(s1.Addr))
assert.MustNoError(c.GroupPromoteServer(gid, s2.Addr))
assert.MustNoError(c.GroupDelServer(gid, s1.Addr))
assert.MustNoError(c.GroupDelServer(gid, s2.Addr))
assert.MustNoError(c.RemoveGroup(gid))
}
func TestApiProxy(x *testing.T) {
t := openTopom()
defer t.Close()
c := newApiClient(t)
p, z := openProxy()
defer z.Shutdown()
assert.MustNoError(c.CreateProxy(p.AdminAddr))
assert.MustNoError(c.ReinitProxy(p.Token))
assert.MustNoError(c.RemoveProxy(p.Token, false))
}