github.com/viant/toolbox@v0.34.5/cred/config_test.go (about)

     1  package cred_test
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"github.com/viant/toolbox/cred"
     6  	"io/ioutil"
     7  	"os"
     8  	"path"
     9  	"strings"
    10  	"testing"
    11  )
    12  
    13  func TestConfig_Load(t *testing.T) {
    14  	var tempDir = os.TempDir()
    15  	var testFile = path.Join(tempDir, "credTest1.json")
    16  	_ = os.Remove(testFile)
    17  	var data = "{\"Username\":\"adrian\", \"Password\":\"abc\"}"
    18  	err := ioutil.WriteFile(testFile, []byte(data), 0644)
    19  	assert.Nil(t, err)
    20  	{
    21  		config, err := cred.NewConfig(testFile)
    22  		assert.Nil(t, err)
    23  		assert.Equal(t, "abc", config.Password)
    24  		assert.Equal(t, "adrian", config.Username)
    25  		assert.Equal(t, "AAAAAAAAAAAXUPcVbxwWlQ==", config.EncryptedPassword)
    26  		_ = os.Remove(testFile)
    27  		config.Save(testFile)
    28  	}
    29  
    30  	{
    31  		config, err := cred.NewConfig(testFile)
    32  		assert.Nil(t, err)
    33  		assert.Equal(t, "abc", config.Password)
    34  		assert.Equal(t, "adrian", config.Username)
    35  		assert.Equal(t, "AAAAAAAAAAAXUPcVbxwWlQ==", config.EncryptedPassword)
    36  	}
    37  
    38  	{
    39  		configJSON := `{"Username":"adrian","EncryptedPassword":"AAAAAAAAAAAXUPcVbxwWlQ=="}`
    40  
    41  		config := cred.Config{}
    42  		err = config.LoadFromReader(strings.NewReader(configJSON), ".json")
    43  		assert.Nil(t, err)
    44  
    45  		assert.EqualValues(t, "abc", config.Password)
    46  	}
    47  
    48  	_ = os.Remove(testFile)
    49  
    50  }