Files
Packer-Cn/packer/testing.go
Lucas Bajolet 1cee460d0d hcp: extract all HCP-related code to hcp package
As part of the work to displace everything related to HCP from scattered
places around the Packer code, we move it all to an hcp package.

This in turn reduces the amount of code that the commands have to
integrate, and leaves the HCP details to its own enclave.
2022-11-14 13:31:35 -05:00

80 lines
1.8 KiB
Go

package packer
import (
"bytes"
"io/ioutil"
"testing"
packersdk "github.com/hashicorp/packer-plugin-sdk/packer"
)
func TestCoreConfig(t *testing.T) *CoreConfig {
// Create some test components
components := ComponentFinder{
PluginConfig: &PluginConfig{
Builders: MapOfBuilder{
"test": func() (packersdk.Builder, error) { return &packersdk.MockBuilder{}, nil },
},
},
}
return &CoreConfig{
Components: components,
}
}
func TestCore(t *testing.T, c *CoreConfig) *Core {
core := NewCore(c)
err := core.Initialize(InitializeOptions{})
if err != nil {
t.Fatalf("err: %s", err)
}
return core
}
func TestUi(t *testing.T) packersdk.Ui {
var buf bytes.Buffer
return &packersdk.BasicUi{
Reader: &buf,
Writer: ioutil.Discard,
ErrorWriter: ioutil.Discard,
}
}
// TestBuilder sets the builder with the name n to the component finder
// and returns the mock.
func TestBuilder(t *testing.T, c *CoreConfig, n string) *packersdk.MockBuilder {
var b packersdk.MockBuilder
c.Components.PluginConfig.Builders = MapOfBuilder{
n: func() (packersdk.Builder, error) { return &b, nil },
}
return &b
}
// TestProvisioner sets the prov. with the name n to the component finder
// and returns the mock.
func TestProvisioner(t *testing.T, c *CoreConfig, n string) *packersdk.MockProvisioner {
var b packersdk.MockProvisioner
c.Components.PluginConfig.Provisioners = MapOfProvisioner{
n: func() (packersdk.Provisioner, error) { return &b, nil },
}
return &b
}
// TestPostProcessor sets the prov. with the name n to the component finder
// and returns the mock.
func TestPostProcessor(t *testing.T, c *CoreConfig, n string) *MockPostProcessor {
var b MockPostProcessor
c.Components.PluginConfig.PostProcessors = MapOfPostProcessor{
n: func() (packersdk.PostProcessor, error) { return &b, nil },
}
return &b
}