go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/macos/systemsetup_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package macos
     5  
     6  import (
     7  	"io"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  	"github.com/stretchr/testify/require"
    12  	"go.mondoo.com/cnquery/providers-sdk/v1/inventory"
    13  	"go.mondoo.com/cnquery/providers/os/connection/mock"
    14  	"go.mondoo.com/cnquery/providers/os/connection/shared"
    15  )
    16  
    17  func TestSystemSetup(t *testing.T) {
    18  	mock, err := mock.New("./testdata/systemsetup.toml", &inventory.Asset{
    19  		Platform: &inventory.Platform{
    20  			Name:    "macos",
    21  			Version: "13.0",
    22  			Family:  []string{"macos"},
    23  		},
    24  	})
    25  	require.NoError(t, err)
    26  
    27  	so := SystemSetupCmdOutput{}
    28  	assert.Equal(t, "8/4/2021", so.ParseDate(mustRunCmd(mock, "systemsetup -getdate")))
    29  	assert.Equal(t, "20:22:54", so.ParseTime(mustRunCmd(mock, "systemsetup -gettime")))
    30  	assert.Equal(t, "Europe/Berlin", so.ParseTimeZone(mustRunCmd(mock, "systemsetup -gettimezone")))
    31  	assert.Equal(t, "time.euro.apple.com", so.ParseNetworkTimeServer(mustRunCmd(mock, "systemsetup -getnetworktimeserver")))
    32  	assert.Equal(t, "On", so.ParseUsingNetworktTime(mustRunCmd(mock, "systemsetup -getusingnetworktime")))
    33  	assert.Equal(t, []string{"Computer sleeps after 1 minutes", "Display sleeps after 10 minutes", "Disk sleeps after 10 minutes"}, so.ParseSleep(mustRunCmd(mock, "systemsetup -getsleep")))
    34  	assert.Equal(t, "after 10 minutes", so.ParseDisplaySleep(mustRunCmd(mock, "systemsetup -getdisplaysleep")))
    35  	assert.Equal(t, "after 10 minutes", so.ParseHardDiskSleep(mustRunCmd(mock, "systemsetup -getharddisksleep")))
    36  	assert.Equal(t, "Not supported on this machine", so.ParseWakeOnModem(mustRunCmd(mock, "systemsetup -getwakeonmodem")))
    37  	assert.Equal(t, "On", so.ParseWakeOnNetwork(mustRunCmd(mock, "systemsetup -getwakeonnetworkaccess")))
    38  	assert.Equal(t, "Not supported on this machine", so.ParseRestartPowerFailure(mustRunCmd(mock, "systemsetup -getrestartpowerfailure")))
    39  	assert.Equal(t, "On", so.ParseRestartFreeze(mustRunCmd(mock, "systemsetup -getrestartfreeze")))
    40  	assert.Equal(t, "On", so.ParseAllowPowerButtonToSleep(mustRunCmd(mock, "systemsetup -getallowpowerbuttontosleepcomputer")))
    41  	assert.Equal(t, "Off", so.ParseRemoteLogin(mustRunCmd(mock, "systemsetup -getremotelogin")))
    42  	assert.Equal(t, "Off", so.ParseRemoteAppleEvents(mustRunCmd(mock, "systemsetup -getremoteappleevents")))
    43  	assert.Equal(t, "spacerocket", so.ParseComputerName(mustRunCmd(mock, "systemsetup -getcomputername")))
    44  	assert.Equal(t, "spacerocket", so.ParseLocalSubnetname(mustRunCmd(mock, "systemsetup -getlocalsubnetname")))
    45  	assert.Equal(t, "0 seconds", so.ParseWaitForStartupAfterPowerFailure(mustRunCmd(mock, "systemsetup -getwaitforstartupafterpowerfailure")))
    46  	assert.Equal(t, "No", so.ParseDisableKeyboardWhenEnclosureLockIsEngaged(mustRunCmd(mock, "systemsetup -getdisablekeyboardwhenenclosurelockisengaged")))
    47  }
    48  
    49  func mustRunCmd(c shared.Connection, command string) string {
    50  	cmd, err := c.RunCommand(command)
    51  	if err != nil {
    52  		panic(err)
    53  	}
    54  	data, err := io.ReadAll(cmd.Stdout)
    55  	if err != nil {
    56  		panic(err)
    57  	}
    58  	return string(data)
    59  }