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 }