mirror of https://github.com/on4kjm/FLEcli.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.2 KiB
92 lines
2.2 KiB
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
const testDir string = "test_dir"
|
|
const testFile string = "test.adi"
|
|
|
|
func setupTestCase(t *testing.T) func(t *testing.T) {
|
|
t.Log("setup test case")
|
|
//create test directory
|
|
os.Mkdir(testDir, os.FileMode(0522))
|
|
//create test file
|
|
f, _ := os.OpenFile(testFile, os.O_WRONLY|os.O_CREATE, 0666)
|
|
defer f.Close()
|
|
|
|
return func(t *testing.T) {
|
|
t.Log("teardown test case")
|
|
//delete test directory
|
|
os.Remove(testDir)
|
|
//detete test file
|
|
os.Remove(testFile)
|
|
}
|
|
}
|
|
|
|
func Test_buildOutputFilename(t *testing.T) {
|
|
type args struct {
|
|
output string
|
|
input string
|
|
overwrite bool
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantOutputFilename string
|
|
wantWasOK bool
|
|
}{
|
|
{
|
|
"input file not provided",
|
|
args{input: "", output: "xxx", overwrite: false},
|
|
"", false,
|
|
},
|
|
{
|
|
"Output file does not exist",
|
|
args{input: "a file", output: "output.adi", overwrite: false},
|
|
"output.adi", true,
|
|
},
|
|
{
|
|
"Output name is a directory",
|
|
args{input: "a file", output: testDir, overwrite: false},
|
|
"", false,
|
|
},
|
|
{
|
|
"Output exist but no overwrite",
|
|
args{input: "a file", output: testFile, overwrite: false},
|
|
"", false,
|
|
},
|
|
{
|
|
"no output, input provided with extention",
|
|
args{input: "/test/data/file.txt", output: "", overwrite: false},
|
|
"/test/data/file.adi", true,
|
|
},
|
|
{
|
|
"no output, input provided without extention",
|
|
args{input: "/test/data/file", output: "", overwrite: false},
|
|
"/test/data/file.adi", true,
|
|
},
|
|
{
|
|
"no output, input provided, enfing with a point",
|
|
args{input: "/test/data/file.", output: "", overwrite: false},
|
|
"/test/data/file.adi", true,
|
|
},
|
|
}
|
|
|
|
teardownTestCase := setupTestCase(t)
|
|
defer teardownTestCase(t)
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
gotOutputFilename, gotWasOK := buildOutputFilename(tt.args.output, tt.args.input, tt.args.overwrite)
|
|
if gotOutputFilename != tt.wantOutputFilename {
|
|
t.Errorf("buildOutputFilename() gotOutputFilename = %v, want %v", gotOutputFilename, tt.wantOutputFilename)
|
|
}
|
|
if gotWasOK != tt.wantWasOK {
|
|
t.Errorf("buildOutputFilename() gotWasOK = %v, want %v", gotWasOK, tt.wantWasOK)
|
|
}
|
|
})
|
|
}
|
|
}
|