6
6
"time"
7
7
8
8
"github.com/go-redis/redis/v8"
9
- "github.com/stretchr/testify/assert "
9
+ "github.com/stretchr/testify/require "
10
10
11
11
"github.com/go-redis/redis_rate/v9"
12
12
)
@@ -27,46 +27,45 @@ func TestAllow(t *testing.T) {
27
27
l := rateLimiter ()
28
28
29
29
limit := redis_rate .PerSecond (10 )
30
- assert .Equal (t , limit .String (), "10 req/s (burst 10)" )
31
- assert .False (t , limit .IsZero ())
30
+ require .Equal (t , limit .String (), "10 req/s (burst 10)" )
31
+ require .False (t , limit .IsZero ())
32
32
33
33
res , err := l .Allow (ctx , "test_id" , limit )
34
- assert .Nil (t , err )
35
- assert .Equal (t , res .Allowed , 1 )
36
- assert .Equal (t , res .Remaining , 9 )
37
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
38
- assert .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
34
+ require .Nil (t , err )
35
+ require .Equal (t , res .Allowed , 1 )
36
+ require .Equal (t , res .Remaining , 9 )
37
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
38
+ require .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
39
39
40
40
err = l .Reset (ctx , "test_id" )
41
- assert .Nil (t , err )
41
+ require .Nil (t , err )
42
42
res , err = l .Allow (ctx , "test_id" , limit )
43
- assert .Nil (t , err )
44
- assert .Equal (t , res .Allowed , 1 )
45
- assert .Equal (t , res .Remaining , 9 )
46
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
47
- assert .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
43
+ require .Nil (t , err )
44
+ require .Equal (t , res .Allowed , 1 )
45
+ require .Equal (t , res .Remaining , 9 )
46
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
47
+ require .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
48
48
49
49
res , err = l .AllowN (ctx , "test_id" , limit , 2 )
50
- assert .Nil (t , err )
51
- assert .Equal (t , res .Allowed , 2 )
52
- assert .Equal (t , res .Remaining , 7 )
53
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
54
- assert .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
50
+ require .Nil (t , err )
51
+ require .Equal (t , res .Allowed , 2 )
52
+ require .Equal (t , res .Remaining , 7 )
53
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
54
+ require .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
55
55
56
56
res , err = l .AllowN (ctx , "test_id" , limit , 7 )
57
- assert .Nil (t , err )
58
- assert .Equal (t , res .Allowed , 7 )
59
- assert .Equal (t , res .Remaining , 0 )
60
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
61
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
57
+ require .Nil (t , err )
58
+ require .Equal (t , res .Allowed , 7 )
59
+ require .Equal (t , res .Remaining , 0 )
60
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
61
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
62
62
63
63
res , err = l .AllowN (ctx , "test_id" , limit , 1000 )
64
- assert .Nil (t , err )
65
- assert .Equal (t , res .Allowed , 0 )
66
- assert .Equal (t , res .Remaining , 0 )
67
- assert .InDelta (t , res .RetryAfter , 99 * time .Second , float64 (time .Second ))
68
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
69
-
64
+ require .Nil (t , err )
65
+ require .Equal (t , res .Allowed , 0 )
66
+ require .Equal (t , res .Remaining , 0 )
67
+ require .InDelta (t , res .RetryAfter , 99 * time .Second , float64 (time .Second ))
68
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
70
69
}
71
70
72
71
func TestRetryAfter (t * testing.T ) {
@@ -81,13 +80,13 @@ func TestRetryAfter(t *testing.T) {
81
80
82
81
for i := 0 ; i < 1000 ; i ++ {
83
82
res , err := l .Allow (ctx , "test_id" , limit )
84
- assert .Nil (t , err )
83
+ require .Nil (t , err )
85
84
86
85
if res .Allowed > 0 {
87
86
continue
88
87
}
89
88
90
- assert .LessOrEqual (t , int64 (res .RetryAfter ), int64 (time .Millisecond ))
89
+ require .LessOrEqual (t , int64 (res .RetryAfter ), int64 (time .Millisecond ))
91
90
}
92
91
}
93
92
@@ -98,53 +97,53 @@ func TestAllowAtMost(t *testing.T) {
98
97
limit := redis_rate .PerSecond (10 )
99
98
100
99
res , err := l .Allow (ctx , "test_id" , limit )
101
- assert .Nil (t , err )
102
- assert .Equal (t , res .Allowed , 1 )
103
- assert .Equal (t , res .Remaining , 9 )
104
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
105
- assert .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
100
+ require .Nil (t , err )
101
+ require .Equal (t , res .Allowed , 1 )
102
+ require .Equal (t , res .Remaining , 9 )
103
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
104
+ require .InDelta (t , res .ResetAfter , 100 * time .Millisecond , float64 (10 * time .Millisecond ))
106
105
107
106
res , err = l .AllowAtMost (ctx , "test_id" , limit , 2 )
108
- assert .Nil (t , err )
109
- assert .Equal (t , res .Allowed , 2 )
110
- assert .Equal (t , res .Remaining , 7 )
111
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
112
- assert .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
107
+ require .Nil (t , err )
108
+ require .Equal (t , res .Allowed , 2 )
109
+ require .Equal (t , res .Remaining , 7 )
110
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
111
+ require .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
113
112
114
113
res , err = l .AllowN (ctx , "test_id" , limit , 0 )
115
- assert .Nil (t , err )
116
- assert .Equal (t , res .Allowed , 0 )
117
- assert .Equal (t , res .Remaining , 7 )
118
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
119
- assert .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
114
+ require .Nil (t , err )
115
+ require .Equal (t , res .Allowed , 0 )
116
+ require .Equal (t , res .Remaining , 7 )
117
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
118
+ require .InDelta (t , res .ResetAfter , 300 * time .Millisecond , float64 (10 * time .Millisecond ))
120
119
121
120
res , err = l .AllowAtMost (ctx , "test_id" , limit , 10 )
122
- assert .Nil (t , err )
123
- assert .Equal (t , res .Allowed , 7 )
124
- assert .Equal (t , res .Remaining , 0 )
125
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
126
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
121
+ require .Nil (t , err )
122
+ require .Equal (t , res .Allowed , 7 )
123
+ require .Equal (t , res .Remaining , 0 )
124
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
125
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
127
126
128
127
res , err = l .AllowN (ctx , "test_id" , limit , 0 )
129
- assert .Nil (t , err )
130
- assert .Equal (t , res .Allowed , 0 )
131
- assert .Equal (t , res .Remaining , 0 )
132
- assert .Equal (t , res .RetryAfter , time .Duration (- 1 ))
133
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
128
+ require .Nil (t , err )
129
+ require .Equal (t , res .Allowed , 0 )
130
+ require .Equal (t , res .Remaining , 0 )
131
+ require .Equal (t , res .RetryAfter , time .Duration (- 1 ))
132
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
134
133
135
134
res , err = l .AllowAtMost (ctx , "test_id" , limit , 1000 )
136
- assert .Nil (t , err )
137
- assert .Equal (t , res .Allowed , 0 )
138
- assert .Equal (t , res .Remaining , 0 )
139
- assert .InDelta (t , res .RetryAfter , 99 * time .Millisecond , float64 (10 * time .Millisecond ))
140
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
135
+ require .Nil (t , err )
136
+ require .Equal (t , res .Allowed , 0 )
137
+ require .Equal (t , res .Remaining , 0 )
138
+ require .InDelta (t , res .RetryAfter , 99 * time .Millisecond , float64 (10 * time .Millisecond ))
139
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
141
140
142
141
res , err = l .AllowN (ctx , "test_id" , limit , 1000 )
143
- assert .Nil (t , err )
144
- assert .Equal (t , res .Allowed , 0 )
145
- assert .Equal (t , res .Remaining , 0 )
146
- assert .InDelta (t , res .RetryAfter , 99 * time .Second , float64 (time .Second ))
147
- assert .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
142
+ require .Nil (t , err )
143
+ require .Equal (t , res .Allowed , 0 )
144
+ require .Equal (t , res .Remaining , 0 )
145
+ require .InDelta (t , res .RetryAfter , 99 * time .Second , float64 (time .Second ))
146
+ require .InDelta (t , res .ResetAfter , 999 * time .Millisecond , float64 (10 * time .Millisecond ))
148
147
}
149
148
150
149
func BenchmarkAllow (b * testing.B ) {
0 commit comments