68 lines
1010 B
Go
68 lines
1010 B
Go
package shell
|
|
|
|
import (
|
|
"testing"
|
|
|
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
|
)
|
|
|
|
func TestProvisioner_impl(t *testing.T) {
|
|
var _ packersdk.Provisioner = new(Provisioner)
|
|
}
|
|
|
|
func TestConfigPrepare(t *testing.T) {
|
|
cases := []struct {
|
|
Key string
|
|
Value interface{}
|
|
Err bool
|
|
}{
|
|
{
|
|
"unknown_key",
|
|
"bad",
|
|
true,
|
|
},
|
|
|
|
{
|
|
"command",
|
|
nil,
|
|
true,
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
raw := testConfig(t)
|
|
|
|
if tc.Value == nil {
|
|
delete(raw, tc.Key)
|
|
} else {
|
|
raw[tc.Key] = tc.Value
|
|
}
|
|
|
|
var p Provisioner
|
|
err := p.Prepare(raw)
|
|
if tc.Err {
|
|
testConfigErr(t, err, tc.Key)
|
|
} else {
|
|
testConfigOk(t, err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func testConfig(t *testing.T) map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"command": "echo foo",
|
|
}
|
|
}
|
|
|
|
func testConfigErr(t *testing.T, err error, extra string) {
|
|
if err == nil {
|
|
t.Fatalf("should error: %s", extra)
|
|
}
|
|
}
|
|
|
|
func testConfigOk(t *testing.T, err error) {
|
|
if err != nil {
|
|
t.Fatalf("bad: %s", err)
|
|
}
|
|
}
|