get.porter.sh/porter@v1.3.0/pkg/pkgmgmt/download_options_test.go (about)

     1  package pkgmgmt
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestPackageDownloadOptions_Validate(t *testing.T) {
    11  	t.Run("unset", func(t *testing.T) {
    12  		opts := PackageDownloadOptions{}
    13  		require.NoError(t, opts.Validate())
    14  		assert.Equal(t, DefaultPackageMirror, opts.Mirror)
    15  	})
    16  
    17  	t.Run("valid url", func(t *testing.T) {
    18  		exampleMirror := "https://example.com"
    19  		opts := PackageDownloadOptions{Mirror: exampleMirror}
    20  		require.NoError(t, opts.Validate())
    21  		assert.Equal(t, exampleMirror, opts.Mirror)
    22  	})
    23  
    24  	t.Run("invalid url", func(t *testing.T) {
    25  		opts := PackageDownloadOptions{Mirror: "$://example.com"}
    26  		require.Error(t, opts.Validate())
    27  	})
    28  }
    29  
    30  func TestPackageDownloadOptions_GetMirror(t *testing.T) {
    31  	t.Run("mirror unset", func(t *testing.T) {
    32  		opts := PackageDownloadOptions{}
    33  		mirror := opts.GetMirror()
    34  		assert.Equal(t, DefaultPackageMirror, mirror.String())
    35  	})
    36  
    37  	t.Run("mirror set", func(t *testing.T) {
    38  		exampleMirror := "https://example.com"
    39  		opts := PackageDownloadOptions{Mirror: exampleMirror}
    40  		require.NoError(t, opts.Validate())
    41  
    42  		result := opts.GetMirror()
    43  		assert.Equal(t, exampleMirror, result.String())
    44  	})
    45  }