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

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package groups_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"go.mondoo.com/cnquery/providers/os/connection/mock"
    11  	"go.mondoo.com/cnquery/providers/os/resources/groups"
    12  )
    13  
    14  func TestParseLinuxEtcGroups(t *testing.T) {
    15  	mock, err := mock.New("./testdata/debian.toml", nil)
    16  	if err != nil {
    17  		t.Fatal(err)
    18  	}
    19  	f, err := mock.FileSystem().Open("/etc/group")
    20  	if err != nil {
    21  		t.Fatal(err)
    22  	}
    23  	assert.Nil(t, err)
    24  	defer f.Close()
    25  
    26  	m, err := groups.ParseEtcGroup(f)
    27  	assert.Nil(t, err)
    28  	assert.Equal(t, 23, len(m), "detected the right amount of services")
    29  
    30  	assert.Equal(t, "root", m[0].Name, "detected user name")
    31  	assert.Equal(t, "0", m[0].ID, "detected id")
    32  	assert.Equal(t, int64(0), m[0].Gid, "detected gid")
    33  	assert.Equal(t, "", m[22].Sid, "detected sid")
    34  	assert.Equal(t, []string{}, m[0].Members, "user description")
    35  
    36  	assert.Equal(t, "vagrant", m[22].Name, "detected user name")
    37  	assert.Equal(t, "1000", m[22].ID, "detected id")
    38  	assert.Equal(t, int64(1000), m[22].Gid, "detected gid")
    39  	assert.Equal(t, "", m[22].Sid, "detected sid")
    40  	assert.Equal(t, []string{"vagrant"}, m[22].Members, "user description")
    41  }
    42  
    43  func TestParseFreebsd12EtcGroups(t *testing.T) {
    44  	mock, err := mock.New("./testdata/freebsd12.toml", nil)
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  	f, err := mock.FileSystem().Open("/etc/group")
    49  	if err != nil {
    50  		t.Fatal(err)
    51  	}
    52  	assert.Nil(t, err)
    53  	defer f.Close()
    54  
    55  	m, err := groups.ParseEtcGroup(f)
    56  	assert.Nil(t, err)
    57  	assert.Equal(t, 36, len(m), "detected the right amount of services")
    58  
    59  	assert.Equal(t, "wheel", m[0].Name, "detected user name")
    60  	assert.Equal(t, "0", m[0].ID, "detected id")
    61  	assert.Equal(t, int64(0), m[0].Gid, "detected gid")
    62  	assert.Equal(t, "", m[0].Sid, "detected sid")
    63  	assert.Equal(t, []string{"root", "vagrant"}, m[0].Members, "user description")
    64  
    65  	assert.Equal(t, "vagrant", m[35].Name, "detected user name")
    66  	assert.Equal(t, "1001", m[35].ID, "detected id")
    67  	assert.Equal(t, int64(1001), m[35].Gid, "detected gid")
    68  	assert.Equal(t, "", m[35].Sid, "detected sid")
    69  	assert.Equal(t, []string{}, m[35].Members, "user description")
    70  }