bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/csconfig/database_test.go (about) 1 package csconfig 2 3 import ( 4 "fmt" 5 "strings" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestLoadDBConfig(t *testing.T) { 12 tests := []struct { 13 name string 14 Input *Config 15 expectedResult *DatabaseCfg 16 err string 17 }{ 18 { 19 name: "basic valid configuration", 20 Input: &Config{ 21 DbConfig: &DatabaseCfg{ 22 Type: "sqlite", 23 DbPath: "./tests/test.db", 24 }, 25 Cscli: &CscliCfg{}, 26 API: &APICfg{ 27 Server: &LocalApiServerCfg{}, 28 }, 29 }, 30 expectedResult: &DatabaseCfg{ 31 Type: "sqlite", 32 DbPath: "./tests/test.db", 33 }, 34 }, 35 { 36 name: "no configuration path", 37 Input: &Config{}, 38 expectedResult: nil, 39 }, 40 } 41 42 for idx, test := range tests { 43 err := test.Input.LoadDBConfig() 44 if err == nil && test.err != "" { 45 fmt.Printf("TEST '%s': NOK\n", test.name) 46 t.Fatalf("%d/%d expected error, didn't get it", idx, len(tests)) 47 } else if test.err != "" { 48 if !strings.HasPrefix(fmt.Sprintf("%s", err), test.err) { 49 fmt.Printf("TEST '%s': NOK\n", test.name) 50 t.Fatalf("%d/%d expected '%s' got '%s'", idx, len(tests), 51 test.err, 52 fmt.Sprintf("%s", err)) 53 } 54 } 55 isOk := assert.Equal(t, test.expectedResult, test.Input.DbConfig) 56 if !isOk { 57 t.Fatalf("TEST '%s': NOK", test.name) 58 } else { 59 fmt.Printf("TEST '%s': OK\n", test.name) 60 } 61 } 62 }