68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package tests
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"floci-sdk-test-go/internal/testutil"
|
|
|
|
"github.com/aws/aws-sdk-go-v2/aws"
|
|
"github.com/aws/aws-sdk-go-v2/service/ssm"
|
|
ssmtypes "github.com/aws/aws-sdk-go-v2/service/ssm/types"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSSM(t *testing.T) {
|
|
ctx := context.Background()
|
|
svc := testutil.SSMClient()
|
|
name := "/go-test/param"
|
|
value := "go-test-value"
|
|
|
|
// Cleanup at end
|
|
t.Cleanup(func() {
|
|
svc.DeleteParameter(ctx, &ssm.DeleteParameterInput{Name: aws.String(name)})
|
|
})
|
|
|
|
t.Run("PutParameter", func(t *testing.T) {
|
|
_, err := svc.PutParameter(ctx, &ssm.PutParameterInput{
|
|
Name: aws.String(name),
|
|
Value: aws.String(value),
|
|
Type: ssmtypes.ParameterTypeString,
|
|
Overwrite: aws.Bool(true),
|
|
})
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
t.Run("GetParameter", func(t *testing.T) {
|
|
r, err := svc.GetParameter(ctx, &ssm.GetParameterInput{Name: aws.String(name)})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, value, aws.ToString(r.Parameter.Value))
|
|
})
|
|
|
|
t.Run("GetParameters", func(t *testing.T) {
|
|
r, err := svc.GetParameters(ctx, &ssm.GetParametersInput{Names: []string{name}})
|
|
require.NoError(t, err)
|
|
assert.Len(t, r.Parameters, 1)
|
|
})
|
|
|
|
t.Run("DescribeParameters", func(t *testing.T) {
|
|
r, err := svc.DescribeParameters(ctx, &ssm.DescribeParametersInput{})
|
|
require.NoError(t, err)
|
|
assert.NotEmpty(t, r.Parameters)
|
|
})
|
|
|
|
t.Run("GetParametersByPath", func(t *testing.T) {
|
|
r, err := svc.GetParametersByPath(ctx, &ssm.GetParametersByPathInput{
|
|
Path: aws.String("/go-test"),
|
|
})
|
|
require.NoError(t, err)
|
|
assert.NotEmpty(t, r.Parameters)
|
|
})
|
|
|
|
t.Run("DeleteParameter", func(t *testing.T) {
|
|
_, err := svc.DeleteParameter(ctx, &ssm.DeleteParameterInput{Name: aws.String(name)})
|
|
require.NoError(t, err)
|
|
})
|
|
}
|