74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package common
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCDPrepare(t *testing.T) {
|
|
type testCases struct {
|
|
CDConfig CDConfig
|
|
ErrExpected bool
|
|
Reason string
|
|
ExpectedCDFiles []string
|
|
}
|
|
tcs := []testCases{
|
|
{
|
|
CDConfig: CDConfig{},
|
|
ErrExpected: false,
|
|
Reason: "TestNilCD: nil CD array should not fail",
|
|
ExpectedCDFiles: []string{},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: make([]string, 0)},
|
|
ErrExpected: false,
|
|
Reason: "TestEmptyArrayCD: empty CD array should never fail",
|
|
ExpectedCDFiles: []string{},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"extra_iso_config.go"}},
|
|
ErrExpected: false,
|
|
Reason: "TestExistingCDFile: array with existing CD should not fail",
|
|
ExpectedCDFiles: []string{"extra_iso_config.go"},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"does_not_exist.foo"}},
|
|
ErrExpected: true,
|
|
Reason: "TestNonExistingCDFile: array with non existing CD should return errors",
|
|
ExpectedCDFiles: []string{"does_not_exist.foo"},
|
|
},
|
|
{
|
|
CDConfig: CDConfig{CDFiles: []string{"extra_iso_config*"}},
|
|
ErrExpected: false,
|
|
Reason: "TestGlobbingCDFile: Glob should work",
|
|
ExpectedCDFiles: []string{"extra_iso_config.go", "extra_iso_config_test.go"},
|
|
},
|
|
}
|
|
for _, tc := range tcs {
|
|
c := tc.CDConfig
|
|
errs := c.Prepare(nil)
|
|
if (len(errs) != 0) != tc.ErrExpected {
|
|
t.Fatal(tc.Reason)
|
|
}
|
|
assert.Equal(t, c.CDFiles, tc.ExpectedCDFiles)
|
|
}
|
|
}
|
|
|
|
func TestMultiErrorCDFiles(t *testing.T) {
|
|
c := CDConfig{
|
|
CDFiles: []string{"extra_iso_config.foo", "extra_iso_config.go",
|
|
"extra_iso_config.bar", "extra_iso_config_test.go", "extra_iso_config.baz"},
|
|
}
|
|
|
|
errs := c.Prepare(nil)
|
|
if len(errs) == 0 {
|
|
t.Fatal("array with non existing CD should return errors")
|
|
}
|
|
|
|
expectedErrors := 3
|
|
if count := len(errs); count != expectedErrors {
|
|
t.Fatalf("array with %v non existing CD should return %v errors but it is returning %v", expectedErrors, expectedErrors, count)
|
|
}
|
|
}
|