-
Notifications
You must be signed in to change notification settings - Fork 401
/
Copy pathratelimit_config_test.go
131 lines (109 loc) · 3.52 KB
/
ratelimit_config_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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//go:build integration
// +build integration
/**
* Tencent is pleased to support the open source community by making Polaris available.
*
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the BSD 3-Clause License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://opensource.org/licenses/BSD-3-Clause
*
* Unless required by applicable law or agreed to in writing, software distributed
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
package test
import (
"testing"
"github.com/polarismesh/polaris/test/integrate/http"
"github.com/polarismesh/polaris/test/integrate/resource"
)
/**
* @brief 测试增删改查限流规则
*/
/**
* @brief 测试增删改查限流规则
*/
func TestRateLimit(t *testing.T) {
t.Log("test rate limit interface")
client := http.NewClient(httpserverAddress, httpserverVersion)
namespaces := resource.CreateNamespaces()
services := resource.CreateServices(namespaces[0])
// 创建命名空间
ret, err := client.CreateNamespaces(namespaces)
if err != nil {
t.Fatalf("create namespaces fail, err is %s", err.Error())
}
for index, item := range ret.GetResponses() {
namespaces[index].Token = item.GetNamespace().GetToken()
}
t.Log("create namespaces success")
// 创建服务
ret, err = client.CreateServices(services)
if err != nil {
t.Fatalf("create services fail, err is %s", err.Error())
}
for index, item := range ret.GetResponses() {
services[index].Token = item.GetService().GetToken()
}
t.Log("create services success")
// -------------------------------------------------------
rateLimits := resource.CreateRateLimits(services)
// 创建限流规则
ret, err = client.CreateRateLimits(rateLimits)
if err != nil {
t.Fatalf("create rate limits fail, err is %s", err.Error())
}
for index, item := range ret.GetResponses() {
rateLimits[index].Id = item.GetRateLimit().GetId()
}
t.Log("create rate limits success")
// 查询限流规则
err = client.GetRateLimits(rateLimits)
if err != nil {
t.Fatalf("get rate limits fail, err is %s", err.Error())
}
t.Log("get rate limits success")
// 更新限流规则
resource.UpdateRateLimits(rateLimits)
err = client.UpdateRateLimits(rateLimits)
if err != nil {
t.Fatalf("update rate limits fail, err is %s", err.Error())
}
t.Log("update rate limits success")
// 查询限流规则
err = client.GetRateLimits(rateLimits)
if err != nil {
t.Fatalf("get rate limits fail, err is %s", err.Error())
}
t.Log("get rate limits success")
// 禁用限流规则
err = client.EnableRateLimits(rateLimits)
if err != nil {
t.Fatalf("enable rate limits fail, err is %s", err.Error())
}
t.Log("enable rate limits success")
// 删除限流规则
err = client.DeleteRateLimits(rateLimits)
if err != nil {
t.Fatalf("delete rate limits fail, err is %s", err.Error())
}
t.Log("delete rate limits success")
// -------------------------------------------------------
// 删除服务
err = client.DeleteServices(services)
if err != nil {
t.Fatalf("delete services fail, err is %s", err.Error())
}
t.Log("delete services success")
// 删除命名空间
err = client.DeleteNamespaces(namespaces)
if err != nil {
t.Fatalf("delete namespaces fail, err is %s", err.Error())
}
t.Log("delete namespaces success")
}