|
| 1 | +// Copyright Mondoo, Inc. 2024, 2026 |
| 2 | +// SPDX-License-Identifier: BUSL-1.1 |
| 3 | + |
| 4 | +package resources |
| 5 | + |
| 6 | +import ( |
| 7 | + "testing" |
| 8 | + |
| 9 | + "github.com/stretchr/testify/assert" |
| 10 | +) |
| 11 | + |
| 12 | +func TestStandardNameFromArn(t *testing.T) { |
| 13 | + t.Run("aws foundational standards ARN", func(t *testing.T) { |
| 14 | + name := standardNameFromArn("arn:aws:securityhub:us-west-2::standards/aws-foundational-security-best-practices/v/1.0.0") |
| 15 | + assert.Equal(t, "aws-foundational-security-best-practices", name) |
| 16 | + }) |
| 17 | + |
| 18 | + t.Run("cis ruleset ARN", func(t *testing.T) { |
| 19 | + name := standardNameFromArn("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0") |
| 20 | + assert.Equal(t, "cis-aws-foundations-benchmark", name) |
| 21 | + }) |
| 22 | + |
| 23 | + t.Run("pci-dss standards ARN", func(t *testing.T) { |
| 24 | + name := standardNameFromArn("arn:aws:securityhub:us-east-1::standards/pci-dss/v/3.2.1") |
| 25 | + assert.Equal(t, "pci-dss", name) |
| 26 | + }) |
| 27 | + |
| 28 | + t.Run("nist standards ARN", func(t *testing.T) { |
| 29 | + name := standardNameFromArn("arn:aws:securityhub:us-east-1::standards/nist-800-53/v/5.0.0") |
| 30 | + assert.Equal(t, "nist-800-53", name) |
| 31 | + }) |
| 32 | + |
| 33 | + t.Run("ARN without standards or ruleset prefix returns full ARN", func(t *testing.T) { |
| 34 | + arn := "arn:aws:securityhub:us-west-2:123456789012:hub/default" |
| 35 | + name := standardNameFromArn(arn) |
| 36 | + assert.Equal(t, arn, name) |
| 37 | + }) |
| 38 | + |
| 39 | + t.Run("empty string returns empty", func(t *testing.T) { |
| 40 | + assert.Equal(t, "", standardNameFromArn("")) |
| 41 | + }) |
| 42 | + |
| 43 | + t.Run("standards ARN without version suffix", func(t *testing.T) { |
| 44 | + name := standardNameFromArn("arn:aws:securityhub:::standards/my-standard") |
| 45 | + assert.Equal(t, "my-standard", name) |
| 46 | + }) |
| 47 | +} |
0 commit comments