Documentation
¶
Index ¶
- type FakeProvider
- func (_f7 *FakeProvider) Allow(actor string, action string, path string) (ident1 bool, ident2 time.Duration, ident3 merry.Error)
- func (f *FakeProvider) AllowCalled() bool
- func (f *FakeProvider) AllowCalledN(n int) bool
- func (f *FakeProvider) AllowCalledOnce() bool
- func (_f10 *FakeProvider) AllowCalledOnceWith(actor string, action string, path string) bool
- func (_f8 *FakeProvider) AllowCalledWith(actor string, action string, path string) (found bool)
- func (f *FakeProvider) AllowNotCalled() bool
- func (_f12 *FakeProvider) AllowResultsForCall(actor string, action string, path string) (ident1 bool, ident2 time.Duration, ident3 merry.Error, found bool)
- func (f *FakeProvider) AssertAllowCalled(t ProviderTestingT)
- func (f *FakeProvider) AssertAllowCalledN(t ProviderTestingT, n int)
- func (f *FakeProvider) AssertAllowCalledOnce(t ProviderTestingT)
- func (_f11 *FakeProvider) AssertAllowCalledOnceWith(t ProviderTestingT, actor string, action string, path string)
- func (_f9 *FakeProvider) AssertAllowCalledWith(t ProviderTestingT, actor string, action string, path string)
- func (f *FakeProvider) AssertAllowNotCalled(t ProviderTestingT)
- func (f *FakeProvider) AssertCloseCalled(t ProviderTestingT)
- func (f *FakeProvider) AssertCloseCalledN(t ProviderTestingT, n int)
- func (f *FakeProvider) AssertCloseCalledOnce(t ProviderTestingT)
- func (f *FakeProvider) AssertCloseNotCalled(t ProviderTestingT)
- func (f *FakeProvider) AssertLimitCalled(t ProviderTestingT)
- func (f *FakeProvider) AssertLimitCalledN(t ProviderTestingT, n int)
- func (f *FakeProvider) AssertLimitCalledOnce(t ProviderTestingT)
- func (_f5 *FakeProvider) AssertLimitCalledOnceWith(t ProviderTestingT, actor string, action string, path string)
- func (_f3 *FakeProvider) AssertLimitCalledWith(t ProviderTestingT, actor string, action string, path string)
- func (f *FakeProvider) AssertLimitNotCalled(t ProviderTestingT)
- func (_f13 *FakeProvider) Close()
- func (f *FakeProvider) CloseCalled() bool
- func (f *FakeProvider) CloseCalledN(n int) bool
- func (f *FakeProvider) CloseCalledOnce() bool
- func (f *FakeProvider) CloseNotCalled() bool
- func (_f1 *FakeProvider) Limit(actor string, action string, path string) (ident1 RateLimit, ident2 merry.Error)
- func (f *FakeProvider) LimitCalled() bool
- func (f *FakeProvider) LimitCalledN(n int) bool
- func (f *FakeProvider) LimitCalledOnce() bool
- func (_f4 *FakeProvider) LimitCalledOnceWith(actor string, action string, path string) bool
- func (_f2 *FakeProvider) LimitCalledWith(actor string, action string, path string) (found bool)
- func (f *FakeProvider) LimitNotCalled() bool
- func (_f6 *FakeProvider) LimitResultsForCall(actor string, action string, path string) (ident1 RateLimit, ident2 merry.Error, found bool)
- func (f *FakeProvider) Reset()
- type Provider
- type ProviderAllowInvocation
- type ProviderCloseInvocation
- type ProviderLimitInvocation
- type ProviderTestingT
- type RateLimit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FakeProvider ¶ added in v0.3.0
type FakeProvider struct {
LimitHook func(string, string, string) (RateLimit, merry.Error)
AllowHook func(string, string, string) (bool, time.Duration, merry.Error)
CloseHook func()
LimitCalls []*ProviderLimitInvocation
AllowCalls []*ProviderAllowInvocation
CloseCalls []*ProviderCloseInvocation
}
FakeProvider is a mock implementation of Provider for testing. Use it in your tests as in this example:
package example
func TestWithProvider(t *testing.T) {
f := &ratelimit.FakeProvider{
LimitHook: func(actor string, action string, path string) (ident1 RateLimit, ident2 merry.Error) {
// ensure parameters meet expections, signal errors using t, etc
return
},
}
// test code goes here ...
// assert state of FakeLimit ...
f.AssertLimitCalledOnce(t)
}
Create anonymous function implementations for only those interface methods that should be called in the code under test. This will force a panic if any unexpected calls are made to FakeLimit.
func NewFakeProviderDefaultError ¶ added in v0.3.0
func NewFakeProviderDefaultError(t ProviderTestingT) *FakeProvider
NewFakeProviderDefaultError returns an instance of FakeProvider with all hooks configured to call t.Error
func NewFakeProviderDefaultFatal ¶ added in v0.3.0
func NewFakeProviderDefaultFatal(t ProviderTestingT) *FakeProvider
NewFakeProviderDefaultFatal returns an instance of FakeProvider with all hooks configured to call t.Fatal
func NewFakeProviderDefaultPanic ¶ added in v0.3.0
func NewFakeProviderDefaultPanic() *FakeProvider
NewFakeProviderDefaultPanic returns an instance of FakeProvider with all hooks configured to panic
func (*FakeProvider) AllowCalled ¶ added in v0.3.0
func (f *FakeProvider) AllowCalled() bool
AllowCalled returns true if FakeProvider.Allow was called
func (*FakeProvider) AllowCalledN ¶ added in v0.3.0
func (f *FakeProvider) AllowCalledN(n int) bool
AllowCalledN returns true if FakeProvider.Allow was called at least n times
func (*FakeProvider) AllowCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) AllowCalledOnce() bool
AllowCalledOnce returns true if FakeProvider.Allow was called exactly once
func (*FakeProvider) AllowCalledOnceWith ¶ added in v0.3.0
func (_f10 *FakeProvider) AllowCalledOnceWith(actor string, action string, path string) bool
AllowCalledOnceWith returns true if FakeProvider.Allow was called exactly once with the given values
func (*FakeProvider) AllowCalledWith ¶ added in v0.3.0
func (_f8 *FakeProvider) AllowCalledWith(actor string, action string, path string) (found bool)
AllowCalledWith returns true if FakeProvider.Allow was called with the given values
func (*FakeProvider) AllowNotCalled ¶ added in v0.3.0
func (f *FakeProvider) AllowNotCalled() bool
AllowNotCalled returns true if FakeProvider.Allow was not called
func (*FakeProvider) AllowResultsForCall ¶ added in v0.3.0
func (_f12 *FakeProvider) AllowResultsForCall(actor string, action string, path string) (ident1 bool, ident2 time.Duration, ident3 merry.Error, found bool)
AllowResultsForCall returns the result values for the first call to FakeProvider.Allow with the given values
func (*FakeProvider) AssertAllowCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertAllowCalled(t ProviderTestingT)
AssertAllowCalled calls t.Error if FakeProvider.Allow was not called
func (*FakeProvider) AssertAllowCalledN ¶ added in v0.3.0
func (f *FakeProvider) AssertAllowCalledN(t ProviderTestingT, n int)
AssertAllowCalledN calls t.Error if FakeProvider.Allow was called less than n times
func (*FakeProvider) AssertAllowCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) AssertAllowCalledOnce(t ProviderTestingT)
AssertAllowCalledOnce calls t.Error if FakeProvider.Allow was not called exactly once
func (*FakeProvider) AssertAllowCalledOnceWith ¶ added in v0.3.0
func (_f11 *FakeProvider) AssertAllowCalledOnceWith(t ProviderTestingT, actor string, action string, path string)
AssertAllowCalledOnceWith calls t.Error if FakeProvider.Allow was not called exactly once with the given values
func (*FakeProvider) AssertAllowCalledWith ¶ added in v0.3.0
func (_f9 *FakeProvider) AssertAllowCalledWith(t ProviderTestingT, actor string, action string, path string)
AssertAllowCalledWith calls t.Error if FakeProvider.Allow was not called with the given values
func (*FakeProvider) AssertAllowNotCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertAllowNotCalled(t ProviderTestingT)
AssertAllowNotCalled calls t.Error if FakeProvider.Allow was called
func (*FakeProvider) AssertCloseCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertCloseCalled(t ProviderTestingT)
AssertCloseCalled calls t.Error if FakeProvider.Close was not called
func (*FakeProvider) AssertCloseCalledN ¶ added in v0.3.0
func (f *FakeProvider) AssertCloseCalledN(t ProviderTestingT, n int)
AssertCloseCalledN calls t.Error if FakeProvider.Close was called less than n times
func (*FakeProvider) AssertCloseCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) AssertCloseCalledOnce(t ProviderTestingT)
AssertCloseCalledOnce calls t.Error if FakeProvider.Close was not called exactly once
func (*FakeProvider) AssertCloseNotCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertCloseNotCalled(t ProviderTestingT)
AssertCloseNotCalled calls t.Error if FakeProvider.Close was called
func (*FakeProvider) AssertLimitCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertLimitCalled(t ProviderTestingT)
AssertLimitCalled calls t.Error if FakeProvider.Limit was not called
func (*FakeProvider) AssertLimitCalledN ¶ added in v0.3.0
func (f *FakeProvider) AssertLimitCalledN(t ProviderTestingT, n int)
AssertLimitCalledN calls t.Error if FakeProvider.Limit was called less than n times
func (*FakeProvider) AssertLimitCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) AssertLimitCalledOnce(t ProviderTestingT)
AssertLimitCalledOnce calls t.Error if FakeProvider.Limit was not called exactly once
func (*FakeProvider) AssertLimitCalledOnceWith ¶ added in v0.3.0
func (_f5 *FakeProvider) AssertLimitCalledOnceWith(t ProviderTestingT, actor string, action string, path string)
AssertLimitCalledOnceWith calls t.Error if FakeProvider.Limit was not called exactly once with the given values
func (*FakeProvider) AssertLimitCalledWith ¶ added in v0.3.0
func (_f3 *FakeProvider) AssertLimitCalledWith(t ProviderTestingT, actor string, action string, path string)
AssertLimitCalledWith calls t.Error if FakeProvider.Limit was not called with the given values
func (*FakeProvider) AssertLimitNotCalled ¶ added in v0.3.0
func (f *FakeProvider) AssertLimitNotCalled(t ProviderTestingT)
AssertLimitNotCalled calls t.Error if FakeProvider.Limit was called
func (*FakeProvider) Close ¶ added in v0.3.0
func (_f13 *FakeProvider) Close()
func (*FakeProvider) CloseCalled ¶ added in v0.3.0
func (f *FakeProvider) CloseCalled() bool
CloseCalled returns true if FakeProvider.Close was called
func (*FakeProvider) CloseCalledN ¶ added in v0.3.0
func (f *FakeProvider) CloseCalledN(n int) bool
CloseCalledN returns true if FakeProvider.Close was called at least n times
func (*FakeProvider) CloseCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) CloseCalledOnce() bool
CloseCalledOnce returns true if FakeProvider.Close was called exactly once
func (*FakeProvider) CloseNotCalled ¶ added in v0.3.0
func (f *FakeProvider) CloseNotCalled() bool
CloseNotCalled returns true if FakeProvider.Close was not called
func (*FakeProvider) LimitCalled ¶ added in v0.3.0
func (f *FakeProvider) LimitCalled() bool
LimitCalled returns true if FakeProvider.Limit was called
func (*FakeProvider) LimitCalledN ¶ added in v0.3.0
func (f *FakeProvider) LimitCalledN(n int) bool
LimitCalledN returns true if FakeProvider.Limit was called at least n times
func (*FakeProvider) LimitCalledOnce ¶ added in v0.3.0
func (f *FakeProvider) LimitCalledOnce() bool
LimitCalledOnce returns true if FakeProvider.Limit was called exactly once
func (*FakeProvider) LimitCalledOnceWith ¶ added in v0.3.0
func (_f4 *FakeProvider) LimitCalledOnceWith(actor string, action string, path string) bool
LimitCalledOnceWith returns true if FakeProvider.Limit was called exactly once with the given values
func (*FakeProvider) LimitCalledWith ¶ added in v0.3.0
func (_f2 *FakeProvider) LimitCalledWith(actor string, action string, path string) (found bool)
LimitCalledWith returns true if FakeProvider.Limit was called with the given values
func (*FakeProvider) LimitNotCalled ¶ added in v0.3.0
func (f *FakeProvider) LimitNotCalled() bool
LimitNotCalled returns true if FakeProvider.Limit was not called
func (*FakeProvider) LimitResultsForCall ¶ added in v0.3.0
func (_f6 *FakeProvider) LimitResultsForCall(actor string, action string, path string) (ident1 RateLimit, ident2 merry.Error, found bool)
LimitResultsForCall returns the result values for the first call to FakeProvider.Limit with the given values
func (*FakeProvider) Reset ¶ added in v0.3.0
func (f *FakeProvider) Reset()
type Provider ¶
type Provider interface {
// Limit returns the policy based rate limit for the given actor performing the action on the path.
Limit(actor, action, path string) (RateLimit, merry.Error)
// Allow returns true if the rate limit policy allows the given actor to perform the action on the path.
// If the rate limit policy disallows the action, the cooldown duration is also returned. Allow only
// returns an error due to internal failure.
Allow(actor, action, path string) (bool, time.Duration, merry.Error)
Close()
}
Provider is an interface providing a means to limiting requests based on actor/action/path parameters.
type ProviderAllowInvocation ¶ added in v0.3.0
type ProviderAllowInvocation struct {
Parameters struct {
Actor string
Action string
Path string
}
Results struct {
Ident1 bool
Ident2 time.Duration
Ident3 merry.Error
}
}
ProviderAllowInvocation represents a single call of FakeProvider.Allow
type ProviderCloseInvocation ¶ added in v0.3.0
type ProviderCloseInvocation struct {
}
ProviderCloseInvocation represents a single call of FakeProvider.Close
type ProviderLimitInvocation ¶ added in v0.3.0
type ProviderLimitInvocation struct {
Parameters struct {
Actor string
Action string
Path string
}
Results struct {
Ident1 RateLimit
Ident2 merry.Error
}
}
ProviderLimitInvocation represents a single call of FakeProvider.Limit
type ProviderTestingT ¶ added in v0.3.0
type ProviderTestingT interface {
Error(...interface{})
Errorf(string, ...interface{})
Fatal(...interface{})
Helper()
}
ProviderTestingT represents the methods of "testing".T used by charlatan Fakes. It avoids importing the testing package.
type RateLimit ¶
RateLimit encodes a maximum number of repititions allowed over a time interval.
func FromString ¶
FromString parses a rate limit string in the form of "<limit>/<duration>".