github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/conf/conf_test.go (about) 1 package conf 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 8 "github.com/cloudreve/Cloudreve/v3/pkg/util" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 // 测试Init日志路径错误 13 func TestInitPanic(t *testing.T) { 14 asserts := assert.New(t) 15 16 // 日志路径不存在时 17 asserts.NotPanics(func() { 18 Init("not/exist/path/conf.ini") 19 }) 20 21 asserts.True(util.Exists("not/exist/path/conf.ini")) 22 23 } 24 25 // TestInitDelimiterNotFound 日志路径存在但 Key 格式错误时 26 func TestInitDelimiterNotFound(t *testing.T) { 27 asserts := assert.New(t) 28 testCase := `[Database] 29 Type = mysql 30 User = root 31 Password233root 32 Host = 127.0.0.1:3306 33 Name = v3 34 TablePrefix = v3_` 35 err := ioutil.WriteFile("testConf.ini", []byte(testCase), 0644) 36 defer func() { err = os.Remove("testConf.ini") }() 37 if err != nil { 38 panic(err) 39 } 40 asserts.Panics(func() { 41 Init("testConf.ini") 42 }) 43 } 44 45 // TestInitNoPanic 日志路径存在且合法时 46 func TestInitNoPanic(t *testing.T) { 47 asserts := assert.New(t) 48 testCase := ` 49 [System] 50 Listen = 3000 51 HashIDSalt = 1 52 53 [Database] 54 Type = mysql 55 User = root 56 Password = root 57 Host = 127.0.0.1:3306 58 Name = v3 59 TablePrefix = v3_ 60 61 [OptionOverwrite] 62 key=value 63 ` 64 err := ioutil.WriteFile("testConf.ini", []byte(testCase), 0644) 65 defer func() { err = os.Remove("testConf.ini") }() 66 if err != nil { 67 panic(err) 68 } 69 asserts.NotPanics(func() { 70 Init("testConf.ini") 71 }) 72 asserts.Equal(OptionOverwrite["key"], "value") 73 } 74 75 func TestMapSection(t *testing.T) { 76 asserts := assert.New(t) 77 78 //正常情况 79 testCase := ` 80 [System] 81 Listen = 3000 82 HashIDSalt = 1 83 84 [Database] 85 Type = mysql 86 User = root 87 Password:root 88 Host = 127.0.0.1:3306 89 Name = v3 90 TablePrefix = v3_` 91 err := ioutil.WriteFile("testConf.ini", []byte(testCase), 0644) 92 defer func() { err = os.Remove("testConf.ini") }() 93 if err != nil { 94 panic(err) 95 } 96 Init("testConf.ini") 97 err = mapSection("Database", DatabaseConfig) 98 asserts.NoError(err) 99 100 }