go_study/fabric-main/core/config/config_test.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)
}