33 lines
703 B
Go
33 lines
703 B
Go
package throttling
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestCallFunction(t *testing.T) {
|
|
client := &Callable{}
|
|
// create context for app
|
|
ctx := context.Background()
|
|
|
|
fmt.Println("Starting")
|
|
throttle := CreateThrottle(ctx, 2)
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
time.Sleep(2 * time.Second)
|
|
fmt.Println("Continuing")
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
CallFunction(ctx, client, &Payload{}, throttle)
|
|
}
|
|
|
|
type Callable struct {
|
|
}
|
|
|
|
func (c *Callable) Call(p *Payload) {
|
|
fmt.Println("Called with payload")
|
|
}
|