bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/csconfig/cscli_test.go (about) 1 package csconfig 2 3 import ( 4 "fmt" 5 "path/filepath" 6 "strings" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestLoadCCSCLI(t *testing.T) { 13 hubFullPath, err := filepath.Abs("./hub") 14 if err != nil { 15 t.Fatalf(err.Error()) 16 } 17 18 dataFullPath, err := filepath.Abs("./data") 19 if err != nil { 20 t.Fatalf(err.Error()) 21 } 22 23 configDirFullPath, err := filepath.Abs("./tests") 24 if err != nil { 25 t.Fatalf(err.Error()) 26 } 27 28 hubIndexFileFullPath, err := filepath.Abs("./hub/.index.json") 29 if err != nil { 30 t.Fatalf(err.Error()) 31 } 32 33 tests := []struct { 34 name string 35 Input *Config 36 expectedResult *CscliCfg 37 err string 38 }{ 39 { 40 name: "basic valid configuration", 41 Input: &Config{ 42 ConfigPaths: &ConfigurationPaths{ 43 ConfigDir: "./tests", 44 DataDir: "./data", 45 HubDir: "./hub", 46 HubIndexFile: "./hub/.index.json", 47 }, 48 }, 49 expectedResult: &CscliCfg{ 50 ConfigDir: configDirFullPath, 51 DataDir: dataFullPath, 52 HubDir: hubFullPath, 53 HubIndexFile: hubIndexFileFullPath, 54 }, 55 }, 56 { 57 name: "no configuration path", 58 Input: &Config{}, 59 expectedResult: &CscliCfg{}, 60 }, 61 } 62 63 for idx, test := range tests { 64 err := test.Input.LoadCCSCLI() 65 if err == nil && test.err != "" { 66 fmt.Printf("TEST '%s': NOK\n", test.name) 67 t.Fatalf("%d/%d expected error, didn't get it", idx, len(tests)) 68 } else if test.err != "" { 69 if !strings.HasPrefix(fmt.Sprintf("%s", err), test.err) { 70 fmt.Printf("TEST '%s': NOK\n", test.name) 71 t.Fatalf("%d/%d expected '%s' got '%s'", idx, len(tests), 72 test.err, 73 fmt.Sprintf("%s", err)) 74 } 75 } 76 77 isOk := assert.Equal(t, test.expectedResult, test.Input.Cscli) 78 if !isOk { 79 t.Fatalf("TEST '%s': NOK", test.name) 80 } else { 81 fmt.Printf("TEST '%s': OK\n", test.name) 82 } 83 } 84 }