| 125 | } |
| 126 | |
| 127 | func TestNeverFake(t *testing.T) { |
| 128 | rl := NewFakeNeverRateLimiter() |
| 129 | if rl.TryAccept() { |
| 130 | t.Error("TryAccept in NeverFake should return false.") |
| 131 | } |
| 132 | |
| 133 | finished := false |
| 134 | wg := sync.WaitGroup{} |
| 135 | wg.Add(1) |
| 136 | go func() { |
| 137 | rl.Accept() |
| 138 | finished = true |
| 139 | wg.Done() |
| 140 | }() |
| 141 | |
| 142 | // Wait some time to make sure it never finished. |
| 143 | time.Sleep(time.Second) |
| 144 | if finished { |
| 145 | t.Error("Accept should block forever in NeverFake.") |
| 146 | } |
| 147 | |
| 148 | rl.Stop() |
| 149 | wg.Wait() |
| 150 | if !finished { |
| 151 | t.Error("Stop should make Accept unblock in NeverFake.") |
| 152 | } |
| 153 | } |