provider/aws: Add tests for new validators
This commit is contained in:
parent
d2a3799158
commit
b7a63c15f9
|
@ -70,3 +70,176 @@ func TestValidateCloudWatchEventRuleName(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateLambdaFunctionName(t *testing.T) {
|
||||
validNames := []string{
|
||||
"arn:aws:lambda:us-west-2:123456789012:function:ThumbNail",
|
||||
"FunctionName",
|
||||
"function-name",
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validateLambdaFunctionName(v, "name")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid Lambda function name: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
"/FunctionNameWithSlash",
|
||||
"function.name.with.dots",
|
||||
// lenght > 140
|
||||
"arn:aws:lambda:us-west-2:123456789012:function:TooLoooooo" +
|
||||
"ooooooooooooooooooooooooooooooooooooooooooooooooooooooo" +
|
||||
"ooooooooooooooooongFunctionName",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validateLambdaFunctionName(v, "name")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid Lambda function name", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateLambdaQualifier(t *testing.T) {
|
||||
validNames := []string{
|
||||
"123",
|
||||
"prod",
|
||||
"PROD",
|
||||
"MyTestEnv",
|
||||
"$LATEST",
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validateLambdaQualifier(v, "name")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid Lambda function qualifier: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
// No ARNs allowed
|
||||
"arn:aws:lambda:us-west-2:123456789012:function:prod",
|
||||
// lenght > 128
|
||||
"TooLooooooooooooooooooooooooooooooooooooooooooooooooooo" +
|
||||
"ooooooooooooooooooooooooooooooooooooooooooooooooooo" +
|
||||
"oooooooooooongQualifier",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validateLambdaQualifier(v, "name")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid Lambda function qualifier", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateLambdaPermissionAction(t *testing.T) {
|
||||
validNames := []string{
|
||||
"lambda:*",
|
||||
"lambda:InvokeFunction",
|
||||
"*",
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validateLambdaPermissionAction(v, "action")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid Lambda permission action: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
"yada",
|
||||
"lambda:123",
|
||||
"*:*",
|
||||
"lambda:Invoke*",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validateLambdaPermissionAction(v, "action")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid Lambda permission action", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateAwsAccountId(t *testing.T) {
|
||||
validNames := []string{
|
||||
"123456789012",
|
||||
"999999999999",
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validateAwsAccountId(v, "account_id")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid AWS Account ID: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
"12345678901", // too short
|
||||
"1234567890123", // too long
|
||||
"invalid",
|
||||
"x123456789012",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validateAwsAccountId(v, "account_id")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid AWS Account ID", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateArn(t *testing.T) {
|
||||
validNames := []string{
|
||||
"arn:aws:elasticbeanstalk:us-east-1:123456789012:environment/My App/MyEnvironment", // Beanstalk
|
||||
"arn:aws:iam::123456789012:user/David", // IAM User
|
||||
"arn:aws:rds:eu-west-1:123456789012:db:mysql-db", // RDS
|
||||
"arn:aws:s3:::my_corporate_bucket/exampleobject.png", // S3 object
|
||||
"arn:aws:events:us-east-1:319201112229:rule/rule_name", // CloudWatch Rule
|
||||
"arn:aws:lambda:eu-west-1:319201112229:function:myCustomFunction", // Lambda function
|
||||
"arn:aws:lambda:eu-west-1:319201112229:function:myCustomFunction:Qualifier", // Lambda func qualifier
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validateArn(v, "arn")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid ARN: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
"arn",
|
||||
"123456789012",
|
||||
"arn:aws",
|
||||
"arn:aws:logs",
|
||||
"arn:aws:logs:region:*:*",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validateArn(v, "arn")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid ARN", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidatePolicyStatementId(t *testing.T) {
|
||||
validNames := []string{
|
||||
"YadaHereAndThere",
|
||||
"Valid-5tatement_Id",
|
||||
"1234",
|
||||
}
|
||||
for _, v := range validNames {
|
||||
_, errors := validatePolicyStatementId(v, "statement_id")
|
||||
if len(errors) != 0 {
|
||||
t.Fatalf("%q should be a valid Statement ID: %q", v, errors)
|
||||
}
|
||||
}
|
||||
|
||||
invalidNames := []string{
|
||||
"Invalid/StatementId/with/slashes",
|
||||
"InvalidStatementId.with.dots",
|
||||
// length > 100
|
||||
"TooooLoooooooooooooooooooooooooooooooooooooooooooo" +
|
||||
"ooooooooooooooooooooooooooooooooooooooooStatementId",
|
||||
}
|
||||
for _, v := range invalidNames {
|
||||
_, errors := validatePolicyStatementId(v, "statement_id")
|
||||
if len(errors) == 0 {
|
||||
t.Fatalf("%q should be an invalid Statement ID", v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue