go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/windows/registrykey_powershell_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package windows 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestWindowsRegistryKeyItemParser(t *testing.T) { 15 r, err := os.Open("./testdata/registrykey.json") 16 require.NoError(t, err) 17 18 items, err := ParsePowershellRegistryKeyItems(r) 19 assert.Nil(t, err) 20 assert.Equal(t, 10, len(items)) 21 assert.Equal(t, "ConsentPromptBehaviorAdmin", items[0].Key) 22 assert.Equal(t, 4, items[0].Value.Kind) 23 assert.Equal(t, int64(5), items[0].Value.Number) 24 assert.Equal(t, int64(5), items[0].GetRawValue()) 25 assert.Equal(t, "5", items[0].String()) 26 } 27 28 func TestWindowsRegistryKeyChildParser(t *testing.T) { 29 r, err := os.Open("./testdata/registrykey-children.json") 30 require.NoError(t, err) 31 32 items, err := ParsePowershellRegistryKeyChildren(r) 33 assert.Nil(t, err) 34 assert.Equal(t, 5, len(items)) 35 } 36 37 func TestWindowsRegistryKeyMultiStringParser(t *testing.T) { 38 r, err := os.Open("./testdata/registrykey_multistring.json") 39 require.NoError(t, err) 40 41 items, err := ParsePowershellRegistryKeyItems(r) 42 assert.Nil(t, err) 43 assert.Equal(t, 1, len(items)) 44 assert.Equal(t, "Machine", items[0].Key) 45 assert.Equal(t, 7, items[0].Value.Kind) 46 assert.Equal(t, []interface{}{ 47 "Software\\Microsoft\\Windows NT\\CurrentVersion\\Print", 48 "Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows", 49 "System\\CurrentControlSet\\Control\\Print\\Printers", 50 }, items[0].GetRawValue()) 51 }