Add validation of interface implementation for both proxmox.Client and mocks
This commit is contained in:
parent
c4ce295f67
commit
2f754c38f8
|
@ -20,6 +20,8 @@ type templateConverter interface {
|
||||||
CreateTemplate(*proxmox.VmRef) error
|
CreateTemplate(*proxmox.VmRef) error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ templateConverter = &proxmox.Client{}
|
||||||
|
|
||||||
func (s *stepConvertToTemplate) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *stepConvertToTemplate) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
client := state.Get("proxmoxClient").(templateConverter)
|
client := state.Get("proxmoxClient").(templateConverter)
|
||||||
|
|
|
@ -22,6 +22,8 @@ func (m converterMock) CreateTemplate(r *proxmox.VmRef) error {
|
||||||
return m.createTemplate(r)
|
return m.createTemplate(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ templateConverter = converterMock{}
|
||||||
|
|
||||||
func TestConvertToTemplate(t *testing.T) {
|
func TestConvertToTemplate(t *testing.T) {
|
||||||
cs := []struct {
|
cs := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
|
@ -17,9 +17,11 @@ type stepFinalizeTemplateConfig struct{}
|
||||||
|
|
||||||
type templateFinalizer interface {
|
type templateFinalizer interface {
|
||||||
GetVmConfig(*proxmox.VmRef) (map[string]interface{}, error)
|
GetVmConfig(*proxmox.VmRef) (map[string]interface{}, error)
|
||||||
SetVmConfig(*proxmox.VmRef, map[string]interface{}) (string, error)
|
SetVmConfig(*proxmox.VmRef, map[string]interface{}) (interface{}, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ templateFinalizer = &proxmox.Client{}
|
||||||
|
|
||||||
func (s *stepFinalizeTemplateConfig) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *stepFinalizeTemplateConfig) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
client := state.Get("proxmoxClient").(templateFinalizer)
|
client := state.Get("proxmoxClient").(templateFinalizer)
|
||||||
|
|
|
@ -18,10 +18,12 @@ type finalizerMock struct {
|
||||||
func (m finalizerMock) GetVmConfig(*proxmox.VmRef) (map[string]interface{}, error) {
|
func (m finalizerMock) GetVmConfig(*proxmox.VmRef) (map[string]interface{}, error) {
|
||||||
return m.getConfig()
|
return m.getConfig()
|
||||||
}
|
}
|
||||||
func (m finalizerMock) SetVmConfig(vmref *proxmox.VmRef, c map[string]interface{}) (string, error) {
|
func (m finalizerMock) SetVmConfig(vmref *proxmox.VmRef, c map[string]interface{}) (interface{}, error) {
|
||||||
return m.setConfig(c)
|
return m.setConfig(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ templateFinalizer = finalizerMock{}
|
||||||
|
|
||||||
func TestTemplateFinalize(t *testing.T) {
|
func TestTemplateFinalize(t *testing.T) {
|
||||||
cs := []struct {
|
cs := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
|
@ -114,6 +114,8 @@ type startedVMCleaner interface {
|
||||||
DeleteVm(*proxmox.VmRef) (string, error)
|
DeleteVm(*proxmox.VmRef) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ startedVMCleaner = &proxmox.Client{}
|
||||||
|
|
||||||
func (s *stepStartVM) Cleanup(state multistep.StateBag) {
|
func (s *stepStartVM) Cleanup(state multistep.StateBag) {
|
||||||
vmRefUntyped, ok := state.GetOk("vmRef")
|
vmRefUntyped, ok := state.GetOk("vmRef")
|
||||||
// If not ok, we probably errored out before creating the VM
|
// If not ok, we probably errored out before creating the VM
|
||||||
|
|
|
@ -14,8 +14,6 @@ type startedVMCleanerMock struct {
|
||||||
deleteVm func() (string, error)
|
deleteVm func() (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ startedVMCleaner = &startedVMCleanerMock{}
|
|
||||||
|
|
||||||
func (m startedVMCleanerMock) StopVm(*proxmox.VmRef) (string, error) {
|
func (m startedVMCleanerMock) StopVm(*proxmox.VmRef) (string, error) {
|
||||||
return m.stopVm()
|
return m.stopVm()
|
||||||
}
|
}
|
||||||
|
@ -23,6 +21,8 @@ func (m startedVMCleanerMock) DeleteVm(*proxmox.VmRef) (string, error) {
|
||||||
return m.deleteVm()
|
return m.deleteVm()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ startedVMCleaner = &startedVMCleanerMock{}
|
||||||
|
|
||||||
func TestCleanupStartVM(t *testing.T) {
|
func TestCleanupStartVM(t *testing.T) {
|
||||||
cs := []struct {
|
cs := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
|
@ -32,6 +32,8 @@ type commandTyper interface {
|
||||||
MonitorCmd(*proxmox.VmRef, string) (map[string]interface{}, error)
|
MonitorCmd(*proxmox.VmRef, string) (map[string]interface{}, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ commandTyper = &proxmox.Client{}
|
||||||
|
|
||||||
func (s *stepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *stepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
c := state.Get("config").(*Config)
|
c := state.Get("config").(*Config)
|
||||||
|
|
|
@ -20,6 +20,8 @@ func (m commandTyperMock) MonitorCmd(ref *proxmox.VmRef, cmd string) (map[string
|
||||||
return m.monitorCmd(ref, cmd)
|
return m.monitorCmd(ref, cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ commandTyper = commandTyperMock{}
|
||||||
|
|
||||||
func TestTypeBootCommand(t *testing.T) {
|
func TestTypeBootCommand(t *testing.T) {
|
||||||
cs := []struct {
|
cs := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
Loading…
Reference in New Issue