go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/mrn/mrn_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package mrn 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestMrnParser(t *testing.T) { 14 var mrn *MRN 15 var err error 16 17 fullResourceName := "//service.example.com/key1/:value1:/key2/:value2:/key3/:value3:" 18 mrn, err = NewMRN(fullResourceName) 19 assert.Nil(t, err) 20 assert.Equal(t, "service.example.com", mrn.ServiceName) 21 assert.Equal(t, "service", ServiceID(mrn.ServiceName, ".example.com")) 22 assert.Equal(t, "key1/:value1:/key2/:value2:/key3/:value3:", mrn.RelativeResourceName) 23 assert.Equal(t, fullResourceName, mrn.String()) 24 } 25 26 func TestCollectionID(t *testing.T) { 27 fullResourceName := "//service.example.com/key1/:value1:/key2/:value2:/key3/:value3:" 28 mrn, err := NewMRN(fullResourceName) 29 assert.Nil(t, err) 30 31 space, err := mrn.ResourceID("key1") 32 require.NoError(t, err) 33 assert.Equal(t, ":value1:", space) 34 region, err := mrn.ResourceID("key2") 35 require.NoError(t, err) 36 assert.Equal(t, ":value2:", region) 37 asset, err := mrn.ResourceID("key3") 38 require.NoError(t, err) 39 assert.Equal(t, ":value3:", asset) 40 } 41 42 func TestEquals(t *testing.T) { 43 fullResourceName := "//service.example.com/key1/:value1:/key2/:value2:/key3/:value3:" 44 mrn, err := NewMRN(fullResourceName) 45 require.NoError(t, err) 46 assert.True(t, mrn.Equals(fullResourceName)) 47 48 mrn, err = NewMRN("//service.example.com/key1/:value1:/key2/:value2:/key3/:value4:") 49 require.NoError(t, err) 50 assert.False(t, mrn.Equals(fullResourceName)) 51 } 52 53 func TestMrnToPropertyName(t *testing.T) { 54 mrn, err := NewMRN("//policy.api.mondoo.app/bundle/M%2FVSHZaChL8=/queries/sshdCiphers") 55 require.NoError(t, err) 56 57 res, err := mrn.ResourceID("queries") 58 require.NoError(t, err) 59 assert.Equal(t, "sshdCiphers", res) 60 61 res, err = mrn.ResourceID("nothere") 62 assert.Error(t, err) 63 assert.Equal(t, "", res) 64 }