go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/services/ps1getservice_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package services_test 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "go.mondoo.com/cnquery/providers/os/resources/services" 12 ) 13 14 func TestWindowsServiceParser(t *testing.T) { 15 data, err := os.Open("./testdata/windows2019.json") 16 if err != nil { 17 t.Fatal(err) 18 } 19 20 srvs, err := services.ParseWindowsService(data) 21 assert.Nil(t, err) 22 assert.Equal(t, 7, len(srvs)) 23 24 expected := &services.Service{ 25 Name: "PolicyAgent", 26 Description: "IPsec Policy Agent", 27 State: "ServiceStopped", 28 Running: false, 29 Installed: true, 30 Enabled: true, 31 Type: "windows", 32 } 33 found := findService(srvs, "PolicyAgent") 34 assert.EqualValues(t, expected, found) 35 36 expected = &services.Service{ 37 Name: "PlugPlay", 38 Description: "Plug and Play", 39 State: "ServiceRunning", 40 Running: true, 41 Installed: true, 42 Enabled: true, 43 Type: "windows", 44 } 45 found = findService(srvs, "PlugPlay") 46 assert.EqualValues(t, expected, found) 47 48 expected = &services.Service{ 49 Name: "PhoneSvc", 50 Description: "Phone Service", 51 State: "ServiceStopped", 52 Running: false, 53 Installed: true, 54 Enabled: false, 55 Type: "windows", 56 } 57 found = findService(srvs, "PhoneSvc") 58 assert.EqualValues(t, expected, found) 59 } 60 61 func findService(srvs []*services.Service, name string) *services.Service { 62 for i := range srvs { 63 if srvs[i].Name == name { 64 return srvs[i] 65 } 66 } 67 return nil 68 }