go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/id/aws/aws_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package aws 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 "go.mondoo.com/cnquery/providers/os/connection/mock" 12 "go.mondoo.com/cnquery/providers/os/detector" 13 ) 14 15 func TestDetectInstance(t *testing.T) { 16 conn, err := mock.New("./testdata/instance.toml", nil) 17 require.NoError(t, err) 18 platform, ok := detector.DetectOS(conn) 19 require.True(t, ok) 20 21 identifier, name, related := Detect(conn, platform) 22 23 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-west-2/instances/i-1234567890abcdef0", identifier) 24 assert.Equal(t, "ec2-name", name) 25 require.Len(t, related, 1) 26 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", related[0]) 27 } 28 29 func TestDetectInstanceArm(t *testing.T) { 30 conn, err := mock.New("./testdata/instancearm.toml", nil) 31 require.NoError(t, err) 32 platform, ok := detector.DetectOS(conn) 33 require.True(t, ok) 34 35 identifier, name, related := Detect(conn, platform) 36 37 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ec2/v1/accounts/123456789012/regions/us-west-2/instances/i-1234567890abcdef0", identifier) 38 assert.Equal(t, "ec2-name", name) 39 require.Len(t, related, 1) 40 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/123456789012", related[0]) 41 } 42 43 func TestDetectNotInstance(t *testing.T) { 44 conn, err := mock.New("./testdata/notinstance.toml", nil) 45 require.NoError(t, err) 46 platform, ok := detector.DetectOS(conn) 47 require.True(t, ok) 48 49 identifier, name, related := Detect(conn, platform) 50 51 assert.Equal(t, "", identifier) 52 assert.Equal(t, "", name) 53 54 require.Len(t, related, 0) 55 } 56 57 func TestDetectConainer(t *testing.T) { 58 conn, err := mock.New("./testdata/container.toml", nil) 59 require.NoError(t, err) 60 platform, ok := detector.DetectOS(conn) 61 require.True(t, ok) 62 63 identifier, name, related := Detect(conn, platform) 64 65 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/ecs/v1/accounts/172746783610/regions/us-east-1/container/vjtest/f088b38d61ac45d6a946b5aebbe7197a/314e35e0-2d0a-4408-b37e-16063461d73a", identifier) 66 assert.Equal(t, "fargate-app", name) 67 require.Len(t, related, 1) 68 assert.Equal(t, "//platformid.api.mondoo.app/runtime/aws/accounts/172746783610", related[0]) 69 }