64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/spf13/viper"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestConfig_dirExists(t *testing.T) {
|
|
tmpF := os.TempDir()
|
|
exists := dirExists(tmpF)
|
|
require.True(t, exists,
|
|
"%s directory exists but dirExists returned false", tmpF)
|
|
|
|
tmpF = "/blah-" + time.Now().Format(time.RFC3339Nano)
|
|
exists = dirExists(tmpF)
|
|
require.False(t, exists,
|
|
"%s directory does not exist but dirExists returned true",
|
|
tmpF)
|
|
}
|
|
|
|
func TestConfig_InitViper(t *testing.T) {
|
|
// Case 1: use viper instance to call InitViper
|
|
v := viper.New()
|
|
err := InitViper(v, "")
|
|
require.NoError(t, err, "Error returned by InitViper")
|
|
|
|
// Case 2: default viper instance to call InitViper
|
|
err = InitViper(nil, "")
|
|
require.NoError(t, err, "Error returned by InitViper")
|
|
}
|
|
|
|
func TestConfig_GetPath(t *testing.T) {
|
|
// Case 1: non existent viper property
|
|
path := GetPath("foo")
|
|
require.Equal(t, "", path, "GetPath should have returned empty string for path 'foo'")
|
|
|
|
// Case 2: viper property that has absolute path
|
|
viper.Set("testpath", "/test/config.yml")
|
|
path = GetPath("testpath")
|
|
require.Equal(t, "/test/config.yml", path)
|
|
}
|
|
|
|
func TestConfig_TranslatePathInPlace(t *testing.T) {
|
|
// Case 1: relative path
|
|
p := "foo"
|
|
TranslatePathInPlace(OfficialPath, &p)
|
|
require.NotEqual(t, "foo", p, "TranslatePathInPlace failed to translate path %s", p)
|
|
|
|
// Case 2: absolute path
|
|
p = "/foo"
|
|
TranslatePathInPlace(OfficialPath, &p)
|
|
require.Equal(t, "/foo", p, "TranslatePathInPlace failed to translate path %s", p)
|
|
}
|