Documentation ¶
Overview ¶
Package iotiface provides an interface to enable mocking the AWS IoT 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 IoTAPI ¶
type IoTAPI interface { AcceptCertificateTransferRequest(*iot.AcceptCertificateTransferInput) iot.AcceptCertificateTransferRequest AttachPrincipalPolicyRequest(*iot.AttachPrincipalPolicyInput) iot.AttachPrincipalPolicyRequest AttachThingPrincipalRequest(*iot.AttachThingPrincipalInput) iot.AttachThingPrincipalRequest CancelCertificateTransferRequest(*iot.CancelCertificateTransferInput) iot.CancelCertificateTransferRequest CreateCertificateFromCsrRequest(*iot.CreateCertificateFromCsrInput) iot.CreateCertificateFromCsrRequest CreateKeysAndCertificateRequest(*iot.CreateKeysAndCertificateInput) iot.CreateKeysAndCertificateRequest CreatePolicyRequest(*iot.CreatePolicyInput) iot.CreatePolicyRequest CreatePolicyVersionRequest(*iot.CreatePolicyVersionInput) iot.CreatePolicyVersionRequest CreateThingRequest(*iot.CreateThingInput) iot.CreateThingRequest CreateThingTypeRequest(*iot.CreateThingTypeInput) iot.CreateThingTypeRequest CreateTopicRuleRequest(*iot.CreateTopicRuleInput) iot.CreateTopicRuleRequest DeleteCACertificateRequest(*iot.DeleteCACertificateInput) iot.DeleteCACertificateRequest DeleteCertificateRequest(*iot.DeleteCertificateInput) iot.DeleteCertificateRequest DeletePolicyRequest(*iot.DeletePolicyInput) iot.DeletePolicyRequest DeletePolicyVersionRequest(*iot.DeletePolicyVersionInput) iot.DeletePolicyVersionRequest DeleteRegistrationCodeRequest(*iot.DeleteRegistrationCodeInput) iot.DeleteRegistrationCodeRequest DeleteThingRequest(*iot.DeleteThingInput) iot.DeleteThingRequest DeleteThingTypeRequest(*iot.DeleteThingTypeInput) iot.DeleteThingTypeRequest DeleteTopicRuleRequest(*iot.DeleteTopicRuleInput) iot.DeleteTopicRuleRequest DeprecateThingTypeRequest(*iot.DeprecateThingTypeInput) iot.DeprecateThingTypeRequest DescribeCACertificateRequest(*iot.DescribeCACertificateInput) iot.DescribeCACertificateRequest DescribeCertificateRequest(*iot.DescribeCertificateInput) iot.DescribeCertificateRequest DescribeEndpointRequest(*iot.DescribeEndpointInput) iot.DescribeEndpointRequest DescribeThingRequest(*iot.DescribeThingInput) iot.DescribeThingRequest DescribeThingTypeRequest(*iot.DescribeThingTypeInput) iot.DescribeThingTypeRequest DetachPrincipalPolicyRequest(*iot.DetachPrincipalPolicyInput) iot.DetachPrincipalPolicyRequest DetachThingPrincipalRequest(*iot.DetachThingPrincipalInput) iot.DetachThingPrincipalRequest DisableTopicRuleRequest(*iot.DisableTopicRuleInput) iot.DisableTopicRuleRequest EnableTopicRuleRequest(*iot.EnableTopicRuleInput) iot.EnableTopicRuleRequest GetLoggingOptionsRequest(*iot.GetLoggingOptionsInput) iot.GetLoggingOptionsRequest GetPolicyRequest(*iot.GetPolicyInput) iot.GetPolicyRequest GetPolicyVersionRequest(*iot.GetPolicyVersionInput) iot.GetPolicyVersionRequest GetRegistrationCodeRequest(*iot.GetRegistrationCodeInput) iot.GetRegistrationCodeRequest GetTopicRuleRequest(*iot.GetTopicRuleInput) iot.GetTopicRuleRequest ListCACertificatesRequest(*iot.ListCACertificatesInput) iot.ListCACertificatesRequest ListCertificatesRequest(*iot.ListCertificatesInput) iot.ListCertificatesRequest ListCertificatesByCARequest(*iot.ListCertificatesByCAInput) iot.ListCertificatesByCARequest ListOutgoingCertificatesRequest(*iot.ListOutgoingCertificatesInput) iot.ListOutgoingCertificatesRequest ListPoliciesRequest(*iot.ListPoliciesInput) iot.ListPoliciesRequest ListPolicyPrincipalsRequest(*iot.ListPolicyPrincipalsInput) iot.ListPolicyPrincipalsRequest ListPolicyVersionsRequest(*iot.ListPolicyVersionsInput) iot.ListPolicyVersionsRequest ListPrincipalPoliciesRequest(*iot.ListPrincipalPoliciesInput) iot.ListPrincipalPoliciesRequest ListPrincipalThingsRequest(*iot.ListPrincipalThingsInput) iot.ListPrincipalThingsRequest ListThingPrincipalsRequest(*iot.ListThingPrincipalsInput) iot.ListThingPrincipalsRequest ListThingTypesRequest(*iot.ListThingTypesInput) iot.ListThingTypesRequest ListThingsRequest(*iot.ListThingsInput) iot.ListThingsRequest ListTopicRulesRequest(*iot.ListTopicRulesInput) iot.ListTopicRulesRequest RegisterCACertificateRequest(*iot.RegisterCACertificateInput) iot.RegisterCACertificateRequest RegisterCertificateRequest(*iot.RegisterCertificateInput) iot.RegisterCertificateRequest RejectCertificateTransferRequest(*iot.RejectCertificateTransferInput) iot.RejectCertificateTransferRequest ReplaceTopicRuleRequest(*iot.ReplaceTopicRuleInput) iot.ReplaceTopicRuleRequest SetDefaultPolicyVersionRequest(*iot.SetDefaultPolicyVersionInput) iot.SetDefaultPolicyVersionRequest SetLoggingOptionsRequest(*iot.SetLoggingOptionsInput) iot.SetLoggingOptionsRequest TransferCertificateRequest(*iot.TransferCertificateInput) iot.TransferCertificateRequest UpdateCACertificateRequest(*iot.UpdateCACertificateInput) iot.UpdateCACertificateRequest UpdateCertificateRequest(*iot.UpdateCertificateInput) iot.UpdateCertificateRequest UpdateThingRequest(*iot.UpdateThingInput) iot.UpdateThingRequest }
IoTAPI provides an interface to enable mocking the iot.IoT 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 IoT. func myFunc(svc iotiface.IoTAPI) bool { // Make svc.AcceptCertificateTransfer request } func main() { cfg, err := external.LoadDefaultAWSConfig() if err != nil { panic("failed to load config, " + err.Error()) } svc := iot.New(cfg) myFunc(svc) }
In your _test.go file:
// Define a mock struct to be used in your unit tests of myFunc. type mockIoTClient struct { iotiface.IoTAPI } func (m *mockIoTClient) AcceptCertificateTransfer(input *iot.AcceptCertificateTransferInput) (*iot.AcceptCertificateTransferOutput, error) { // mock response/functionality } func TestMyFunc(t *testing.T) { // Setup Test mockSvc := &mockIoTClient{} 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.