github.com/jenkins-x/jx/v2@v2.1.155/pkg/util/system/version_linux_test.go (about)

     1  // +build unit
     2  // +build linux
     3  
     4  package system
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  const UbuntuOsRelease = `
    13  NAME="Ubuntu"
    14  VERSION="18.04.4 LTS (Bionic Beaver)"
    15  ID=ubuntu
    16  ID_LIKE=debian
    17  PRETTY_NAME="Ubuntu 18.04.4 LTS"
    18  VERSION_ID="18.04"
    19  HOME_URL="https://www.ubuntu.com/"
    20  SUPPORT_URL="https://help.ubuntu.com/"
    21  BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    22  PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    23  VERSION_CODENAME=bionic
    24  UBUNTU_CODENAME=bionic
    25  `
    26  
    27  // MockUbuntuReleaseGetter provides to mock Ubuntu file.
    28  type MockUbuntuReleaseGetter struct{}
    29  
    30  func (m *MockUbuntuReleaseGetter) GetFileContents(file string) (string, error) {
    31  	switch file {
    32  	case "/etc/os-release":
    33  		return UbuntuOsRelease, nil
    34  	default:
    35  		return "Ubuntu 18.04.4 LTS", nil
    36  	}
    37  }
    38  
    39  func TestGetOsVersionReturnsNoErrorWithMock(t *testing.T) {
    40  	t.Parallel()
    41  
    42  	ubuntu := &MockUbuntuReleaseGetter{}
    43  	SetReleaseGetter(ubuntu)
    44  	ver, err := GetOsVersion()
    45  	assert.NoError(t, err)
    46  	assert.NotNil(t, ver)
    47  	assert.Equal(t, "Ubuntu 18.04.4 LTS", ver)
    48  }