58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package plugin
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
|
pluginVersion "github.com/hashicorp/packer/packer-plugin-sdk/version"
|
|
"github.com/hashicorp/packer/version"
|
|
)
|
|
|
|
type MockBuilder struct {
|
|
packersdk.Builder
|
|
}
|
|
|
|
var _ packersdk.Builder = new(MockBuilder)
|
|
|
|
type MockProvisioner struct {
|
|
packersdk.Provisioner
|
|
}
|
|
|
|
var _ packersdk.Provisioner = new(MockProvisioner)
|
|
|
|
type MockPostProcessor struct {
|
|
packersdk.PostProcessor
|
|
}
|
|
|
|
var _ packersdk.PostProcessor = new(MockPostProcessor)
|
|
|
|
func TestSet(t *testing.T) {
|
|
set := NewSet()
|
|
set.RegisterBuilder("example-2", new(MockBuilder))
|
|
set.RegisterBuilder("example", new(MockBuilder))
|
|
set.RegisterPostProcessor("example", new(MockPostProcessor))
|
|
set.RegisterPostProcessor("example-2", new(MockPostProcessor))
|
|
set.RegisterProvisioner("example", new(MockProvisioner))
|
|
set.RegisterProvisioner("example-2", new(MockProvisioner))
|
|
set.SetVersion(pluginVersion.InitializePluginVersion(
|
|
"1.1.1", ""))
|
|
|
|
outputDesc := set.description()
|
|
|
|
if diff := cmp.Diff(SetDescription{
|
|
Version: "1.1.1",
|
|
SDKVersion: version.String(),
|
|
Builders: []string{"example", "example-2"},
|
|
PostProcessors: []string{"example", "example-2"},
|
|
Provisioners: []string{"example", "example-2"},
|
|
}, outputDesc); diff != "" {
|
|
t.Fatalf("Unexpected description: %s", diff)
|
|
}
|
|
|
|
err := set.RunCommand("start", "builder", "example")
|
|
if diff := cmp.Diff(err.Error(), ErrManuallyStartedPlugin.Error()); diff != "" {
|
|
t.Fatalf("Unexpected error: %s", diff)
|
|
}
|
|
}
|