package provider import ( "testing" "github.com/google/go-cmp/cmp" awsbase "github.com/hashicorp/aws-sdk-go-base/v2" "github.com/hashicorp/terraform-plugin-framework/types" ) func TestProvider(t *testing.T) {} func TestUserAgentProducts(t *testing.T) { t.Parallel() simpleProduct := awsbase.UserAgentProduct{Name: "simple", Version: "t", Comment: "t"} simpleAddProduct := userAgentProduct{ProductName: types.String{Value: simpleProduct.Name}, ProductVersion: types.String{Value: simpleProduct.Version}, Comment: types.String{Value: simpleProduct.Comment}} minimalProduct := awsbase.UserAgentProduct{Name: "minimal"} minimalAddProduct := userAgentProduct{ProductName: types.String{Value: minimalProduct.Name}} testcases := map[string]struct { addProducts []userAgentProduct expected []awsbase.UserAgentProduct }{ "none_added": { addProducts: []userAgentProduct{}, expected: []awsbase.UserAgentProduct{}, }, "simple_added": { addProducts: []userAgentProduct{simpleAddProduct}, expected: []awsbase.UserAgentProduct{simpleProduct}, }, "minimal_added": { addProducts: []userAgentProduct{minimalAddProduct}, expected: []awsbase.UserAgentProduct{minimalProduct}, }, "both_added": { addProducts: []userAgentProduct{simpleAddProduct, minimalAddProduct}, expected: []awsbase.UserAgentProduct{simpleProduct, minimalProduct}, }, } for name, testcase := range testcases { name, testcase := name, testcase t.Run(name, func(t *testing.T) { actual := userAgentProducts(testcase.addProducts) if !cmp.Equal(testcase.expected, actual) { t.Errorf("expected %q, got %q", testcase.expected, actual) } }) } }