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

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package services_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  	"go.mondoo.com/cnquery/providers-sdk/v1/inventory"
    12  	"go.mondoo.com/cnquery/providers/os/connection/mock"
    13  	"go.mondoo.com/cnquery/providers/os/resources/services"
    14  )
    15  
    16  func TestManagerDebian(t *testing.T) {
    17  	mock, err := mock.New("./testdata/debian.toml", &inventory.Asset{
    18  		Platform: &inventory.Platform{
    19  			Name:    "debian",
    20  			Version: "8.0",
    21  			Family:  []string{"debian", "linux"},
    22  		},
    23  	})
    24  	require.NoError(t, err)
    25  
    26  	mm, err := services.ResolveManager(mock)
    27  	require.NoError(t, err)
    28  	mounts, err := mm.List()
    29  	require.NoError(t, err)
    30  
    31  	assert.Equal(t, 102, len(mounts))
    32  }
    33  
    34  func TestManagerAmzn1(t *testing.T) {
    35  	// tests fallback to upstart service
    36  	mock, err := mock.New("./testdata/amzn1.toml", &inventory.Asset{
    37  		Platform: &inventory.Platform{
    38  			Name:    "amazonlinux",
    39  			Version: "2018.03",
    40  			Family:  []string{"linux"},
    41  		},
    42  	})
    43  	require.NoError(t, err)
    44  
    45  	mm, err := services.ResolveManager(mock)
    46  	require.NoError(t, err)
    47  	mounts, err := mm.List()
    48  	require.NoError(t, err)
    49  
    50  	assert.Equal(t, 16, len(mounts))
    51  }
    52  
    53  func TestManagerCentos6(t *testing.T) {
    54  	// tests fallback to upstart service
    55  	mock, err := mock.New("./testdata/centos6.toml", &inventory.Asset{
    56  		Platform: &inventory.Platform{
    57  			Name:    "centos",
    58  			Version: "6.10",
    59  			Family:  []string{"linux", "redhat"},
    60  		},
    61  	})
    62  	require.NoError(t, err)
    63  
    64  	mm, err := services.ResolveManager(mock)
    65  	require.NoError(t, err)
    66  	mounts, err := mm.List()
    67  	require.NoError(t, err)
    68  
    69  	assert.Equal(t, 15, len(mounts))
    70  }
    71  
    72  func TestManagerUbuntu1404(t *testing.T) {
    73  	// tests fallback to upstart service
    74  	mock, err := mock.New("./testdata/ubuntu1404.toml", &inventory.Asset{
    75  		Platform: &inventory.Platform{
    76  			Name:    "ubuntu",
    77  			Version: "14.04",
    78  			Family:  []string{"linux", "ubuntu"},
    79  		},
    80  	})
    81  	require.NoError(t, err)
    82  
    83  	mm, err := services.ResolveManager(mock)
    84  	require.NoError(t, err)
    85  	serviceList, err := mm.List()
    86  	require.NoError(t, err)
    87  
    88  	assert.Equal(t, 9, len(serviceList))
    89  }
    90  
    91  func TestManagerOpensuse13(t *testing.T) {
    92  	// tests fallback to upstart service
    93  	mock, err := mock.New("./testdata/opensuse13.toml", &inventory.Asset{
    94  		Platform: &inventory.Platform{
    95  			Name:    "suse",
    96  			Version: "13",
    97  			Family:  []string{"suse", "linux"},
    98  		},
    99  	})
   100  	require.NoError(t, err)
   101  
   102  	mm, err := services.ResolveManager(mock)
   103  	require.NoError(t, err)
   104  	serviceList, err := mm.List()
   105  	require.NoError(t, err)
   106  
   107  	assert.Equal(t, 31, len(serviceList))
   108  }
   109  
   110  func TestManagerMacos(t *testing.T) {
   111  	mock, err := mock.New("./testdata/osx.toml", &inventory.Asset{
   112  		Platform: &inventory.Platform{
   113  			Name:   "macos",
   114  			Family: []string{"unix", "darwin"},
   115  		},
   116  	})
   117  	require.NoError(t, err)
   118  
   119  	mm, err := services.ResolveManager(mock)
   120  	require.NoError(t, err)
   121  	serviceList, err := mm.List()
   122  	require.NoError(t, err)
   123  
   124  	assert.Equal(t, 15, len(serviceList))
   125  }
   126  
   127  func TestManagerFreebsd(t *testing.T) {
   128  	mock, err := mock.New("./testdata/freebsd12.toml", &inventory.Asset{
   129  		Platform: &inventory.Platform{
   130  			Name:   "freebsd",
   131  			Family: []string{"unix"},
   132  		},
   133  	})
   134  	require.NoError(t, err)
   135  
   136  	mm, err := services.ResolveManager(mock)
   137  	require.NoError(t, err)
   138  	serviceList, err := mm.List()
   139  	require.NoError(t, err)
   140  
   141  	assert.Equal(t, 25, len(serviceList))
   142  }
   143  
   144  func TestManagerDragonflybsd5(t *testing.T) {
   145  	mock, err := mock.New("./testdata/dragonfly5.toml", &inventory.Asset{
   146  		Platform: &inventory.Platform{
   147  			Name:   "dragonflybsd",
   148  			Family: []string{"unix"},
   149  		},
   150  	})
   151  	require.NoError(t, err)
   152  
   153  	mm, err := services.ResolveManager(mock)
   154  	require.NoError(t, err)
   155  	serviceList, err := mm.List()
   156  	require.NoError(t, err)
   157  
   158  	assert.Equal(t, 11, len(serviceList))
   159  }
   160  
   161  func TestManagerOpenBsd6(t *testing.T) {
   162  	mock, err := mock.New("./testdata/openbsd6.toml", &inventory.Asset{
   163  		Platform: &inventory.Platform{
   164  			Name:   "openbsd",
   165  			Family: []string{"unix"},
   166  		},
   167  	})
   168  	require.NoError(t, err)
   169  
   170  	mm, err := services.ResolveManager(mock)
   171  	require.NoError(t, err)
   172  	serviceList, err := mm.List()
   173  	require.NoError(t, err)
   174  
   175  	assert.Equal(t, 70, len(serviceList))
   176  }
   177  
   178  func TestManagerWindows(t *testing.T) {
   179  	mock, err := mock.New("./testdata/windows2019.toml", &inventory.Asset{
   180  		Platform: &inventory.Platform{
   181  			Name:   "windows",
   182  			Family: []string{"windows"},
   183  		},
   184  	})
   185  	require.NoError(t, err)
   186  
   187  	mm, err := services.ResolveManager(mock)
   188  	require.NoError(t, err)
   189  	serviceList, err := mm.List()
   190  	require.NoError(t, err)
   191  
   192  	assert.Equal(t, 1, len(serviceList))
   193  }