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  }