From 19bd28cd72a7ade96ab21986f568db4515bc9fa1 Mon Sep 17 00:00:00 2001 From: Matt Dainty Date: Fri, 7 Dec 2018 16:23:03 +0000 Subject: [PATCH] Fix/add tests --- packer/provisioner_mock.go | 12 +++++++ provisioner/elevated_test.go | 38 ++++++++++++++++++++++ provisioner/powershell/provisioner_test.go | 24 -------------- 3 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 provisioner/elevated_test.go diff --git a/packer/provisioner_mock.go b/packer/provisioner_mock.go index 62b304ccb..0c7a25791 100644 --- a/packer/provisioner_mock.go +++ b/packer/provisioner_mock.go @@ -34,3 +34,15 @@ func (t *MockProvisioner) Provision(ui Ui, comm Communicator) error { func (t *MockProvisioner) Cancel() { t.CancelCalled = true } + +func (t *MockProvisioner) Communicator() Communicator { + return t.ProvCommunicator +} + +func (t *MockProvisioner) ElevatedUser() string { + return "user" +} + +func (t *MockProvisioner) ElevatedPassword() string { + return "password" +} diff --git a/provisioner/elevated_test.go b/provisioner/elevated_test.go new file mode 100644 index 000000000..ac8759ef2 --- /dev/null +++ b/provisioner/elevated_test.go @@ -0,0 +1,38 @@ +package provisioner + +import ( + "regexp" + "testing" + + "github.com/hashicorp/packer/packer" +) + +func testConfig() map[string]interface{} { + return map[string]interface{}{ + "inline": []interface{}{"foo", "bar"}, + } +} + +func TestProvisioner_GenerateElevatedRunner(t *testing.T) { + + // Non-elevated + config := testConfig() + p := new(packer.MockProvisioner) + p.Prepare(config) + comm := new(packer.MockCommunicator) + p.ProvCommunicator = comm + path, err := GenerateElevatedRunner("whoami", p) + + if err != nil { + t.Fatalf("Did not expect error: %s", err.Error()) + } + + if comm.UploadCalled != true { + t.Fatalf("Should have uploaded file") + } + + matched, _ := regexp.MatchString("C:/Windows/Temp/packer-elevated-shell.*", path) + if !matched { + t.Fatalf("Got unexpected file: %s", path) + } +} diff --git a/provisioner/powershell/provisioner_test.go b/provisioner/powershell/provisioner_test.go index b0a0a27ab..eef61bf8d 100644 --- a/provisioner/powershell/provisioner_test.go +++ b/provisioner/powershell/provisioner_test.go @@ -654,30 +654,6 @@ func TestProvision_uploadEnvVars(t *testing.T) { } } -func TestProvision_generateElevatedShellRunner(t *testing.T) { - - // Non-elevated - config := testConfig() - p := new(Provisioner) - p.Prepare(config) - comm := new(packer.MockCommunicator) - p.communicator = comm - path, err := p.generateElevatedRunner("whoami") - - if err != nil { - t.Fatalf("Did not expect error: %s", err.Error()) - } - - if comm.UploadCalled != true { - t.Fatalf("Should have uploaded file") - } - - matched, _ := regexp.MatchString("C:/Windows/Temp/packer-elevated-shell.*", path) - if !matched { - t.Fatalf("Got unexpected file: %s", path) - } -} - func TestRetryable(t *testing.T) { config := testConfig()