Documentation
¶
Overview ¶
Package wafiface provides an interface to enable mocking the AWS WAF service client for testing your code.
It is important to note that this interface will have breaking changes when the service model is updated and adds new API operations, paginators, and waiters.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type WAFAPI ¶
type WAFAPI interface {
CreateByteMatchSetRequest(*waf.CreateByteMatchSetInput) waf.CreateByteMatchSetRequest
CreateIPSetRequest(*waf.CreateIPSetInput) waf.CreateIPSetRequest
CreateRateBasedRuleRequest(*waf.CreateRateBasedRuleInput) waf.CreateRateBasedRuleRequest
CreateRuleRequest(*waf.CreateRuleInput) waf.CreateRuleRequest
CreateSizeConstraintSetRequest(*waf.CreateSizeConstraintSetInput) waf.CreateSizeConstraintSetRequest
CreateSqlInjectionMatchSetRequest(*waf.CreateSqlInjectionMatchSetInput) waf.CreateSqlInjectionMatchSetRequest
CreateWebACLRequest(*waf.CreateWebACLInput) waf.CreateWebACLRequest
CreateXssMatchSetRequest(*waf.CreateXssMatchSetInput) waf.CreateXssMatchSetRequest
DeleteByteMatchSetRequest(*waf.DeleteByteMatchSetInput) waf.DeleteByteMatchSetRequest
DeleteIPSetRequest(*waf.DeleteIPSetInput) waf.DeleteIPSetRequest
DeleteRateBasedRuleRequest(*waf.DeleteRateBasedRuleInput) waf.DeleteRateBasedRuleRequest
DeleteRuleRequest(*waf.DeleteRuleInput) waf.DeleteRuleRequest
DeleteSizeConstraintSetRequest(*waf.DeleteSizeConstraintSetInput) waf.DeleteSizeConstraintSetRequest
DeleteSqlInjectionMatchSetRequest(*waf.DeleteSqlInjectionMatchSetInput) waf.DeleteSqlInjectionMatchSetRequest
DeleteWebACLRequest(*waf.DeleteWebACLInput) waf.DeleteWebACLRequest
DeleteXssMatchSetRequest(*waf.DeleteXssMatchSetInput) waf.DeleteXssMatchSetRequest
GetByteMatchSetRequest(*waf.GetByteMatchSetInput) waf.GetByteMatchSetRequest
GetChangeTokenRequest(*waf.GetChangeTokenInput) waf.GetChangeTokenRequest
GetChangeTokenStatusRequest(*waf.GetChangeTokenStatusInput) waf.GetChangeTokenStatusRequest
GetIPSetRequest(*waf.GetIPSetInput) waf.GetIPSetRequest
GetRateBasedRuleRequest(*waf.GetRateBasedRuleInput) waf.GetRateBasedRuleRequest
GetRateBasedRuleManagedKeysRequest(*waf.GetRateBasedRuleManagedKeysInput) waf.GetRateBasedRuleManagedKeysRequest
GetRuleRequest(*waf.GetRuleInput) waf.GetRuleRequest
GetSampledRequestsRequest(*waf.GetSampledRequestsInput) waf.GetSampledRequestsRequest
GetSizeConstraintSetRequest(*waf.GetSizeConstraintSetInput) waf.GetSizeConstraintSetRequest
GetSqlInjectionMatchSetRequest(*waf.GetSqlInjectionMatchSetInput) waf.GetSqlInjectionMatchSetRequest
GetWebACLRequest(*waf.GetWebACLInput) waf.GetWebACLRequest
GetXssMatchSetRequest(*waf.GetXssMatchSetInput) waf.GetXssMatchSetRequest
ListByteMatchSetsRequest(*waf.ListByteMatchSetsInput) waf.ListByteMatchSetsRequest
ListIPSetsRequest(*waf.ListIPSetsInput) waf.ListIPSetsRequest
ListRateBasedRulesRequest(*waf.ListRateBasedRulesInput) waf.ListRateBasedRulesRequest
ListRulesRequest(*waf.ListRulesInput) waf.ListRulesRequest
ListSizeConstraintSetsRequest(*waf.ListSizeConstraintSetsInput) waf.ListSizeConstraintSetsRequest
ListSqlInjectionMatchSetsRequest(*waf.ListSqlInjectionMatchSetsInput) waf.ListSqlInjectionMatchSetsRequest
ListWebACLsRequest(*waf.ListWebACLsInput) waf.ListWebACLsRequest
ListXssMatchSetsRequest(*waf.ListXssMatchSetsInput) waf.ListXssMatchSetsRequest
UpdateByteMatchSetRequest(*waf.UpdateByteMatchSetInput) waf.UpdateByteMatchSetRequest
UpdateIPSetRequest(*waf.UpdateIPSetInput) waf.UpdateIPSetRequest
UpdateRateBasedRuleRequest(*waf.UpdateRateBasedRuleInput) waf.UpdateRateBasedRuleRequest
UpdateRuleRequest(*waf.UpdateRuleInput) waf.UpdateRuleRequest
UpdateSizeConstraintSetRequest(*waf.UpdateSizeConstraintSetInput) waf.UpdateSizeConstraintSetRequest
UpdateSqlInjectionMatchSetRequest(*waf.UpdateSqlInjectionMatchSetInput) waf.UpdateSqlInjectionMatchSetRequest
UpdateWebACLRequest(*waf.UpdateWebACLInput) waf.UpdateWebACLRequest
UpdateXssMatchSetRequest(*waf.UpdateXssMatchSetInput) waf.UpdateXssMatchSetRequest
}
WAFAPI provides an interface to enable mocking the waf.WAF service client's API operation, paginators, and waiters. This make unit testing your code that calls out to the SDK's service client's calls easier.
The best way to use this interface is so the SDK's service client's calls can be stubbed out for unit testing your code with the SDK without needing to inject custom request handlers into the SDK's request pipeline.
// myFunc uses an SDK service client to make a request to
// AWS WAF.
func myFunc(svc wafiface.WAFAPI) bool {
// Make svc.CreateByteMatchSet request
}
func main() {
cfg, err := external.LoadDefaultAWSConfig()
if err != nil {
panic("failed to load config, " + err.Error())
}
svc := waf.New(cfg)
myFunc(svc)
}
In your _test.go file:
// Define a mock struct to be used in your unit tests of myFunc.
type mockWAFClient struct {
wafiface.WAFAPI
}
func (m *mockWAFClient) CreateByteMatchSet(input *waf.CreateByteMatchSetInput) (*waf.CreateByteMatchSetOutput, error) {
// mock response/functionality
}
func TestMyFunc(t *testing.T) {
// Setup Test
mockSvc := &mockWAFClient{}
myfunc(mockSvc)
// Verify myFunc's functionality
}
It is important to note that this interface will have breaking changes when the service model is updated and adds new API operations, paginators, and waiters. Its suggested to use the pattern above for testing, or using tooling to generate mocks to satisfy the interfaces.
Source Files
¶
- interface.go