github.com/mmcquillan/packer@v1.1.1-0.20171009221028-c85cf0483a5d/builder/azure/arm/step_delete_resource_group_test.go (about)

     1  package arm
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/packer/builder/azure/common/constants"
     8  	"github.com/mitchellh/multistep"
     9  )
    10  
    11  func TestStepDeleteResourceGroupShouldFailIfDeleteFails(t *testing.T) {
    12  	var testSubject = &StepDeleteResourceGroup{
    13  		delete: func(string, <-chan struct{}) error { return fmt.Errorf("!! Unit Test FAIL !!") },
    14  		say:    func(message string) {},
    15  		error:  func(e error) {},
    16  	}
    17  
    18  	stateBag := DeleteTestStateBagStepDeleteResourceGroup()
    19  
    20  	var result = testSubject.Run(stateBag)
    21  	if result != multistep.ActionHalt {
    22  		t.Fatalf("Expected the step to return 'ActionHalt', but got '%d'.", result)
    23  	}
    24  
    25  	if _, ok := stateBag.GetOk(constants.Error); ok == false {
    26  		t.Fatalf("Expected the step to set stateBag['%s'], but it was not.", constants.Error)
    27  	}
    28  }
    29  
    30  func TestStepDeleteResourceGroupShouldPassIfDeletePasses(t *testing.T) {
    31  	var testSubject = &StepDeleteResourceGroup{
    32  		delete: func(string, <-chan struct{}) error { return nil },
    33  		say:    func(message string) {},
    34  		error:  func(e error) {},
    35  	}
    36  
    37  	stateBag := DeleteTestStateBagStepDeleteResourceGroup()
    38  
    39  	var result = testSubject.Run(stateBag)
    40  	if result != multistep.ActionContinue {
    41  		t.Fatalf("Expected the step to return 'ActionContinue', but got '%d'.", result)
    42  	}
    43  
    44  	if _, ok := stateBag.GetOk(constants.Error); ok == true {
    45  		t.Fatalf("Expected the step to not set stateBag['%s'], but it was.", constants.Error)
    46  	}
    47  }
    48  
    49  func TestStepDeleteResourceGroupShouldDeleteStateBagArmResourceGroupCreated(t *testing.T) {
    50  	var testSubject = &StepDeleteResourceGroup{
    51  		delete: func(resourceGroupName string, cancelCh <-chan struct{}) error {
    52  			return nil
    53  		},
    54  		say:   func(message string) {},
    55  		error: func(e error) {},
    56  	}
    57  
    58  	stateBag := DeleteTestStateBagStepDeleteResourceGroup()
    59  	testSubject.Run(stateBag)
    60  
    61  	value, ok := stateBag.GetOk(constants.ArmIsResourceGroupCreated)
    62  	if !ok {
    63  		t.Fatal("Expected the resource bag value arm.IsResourceGroupCreated to exist")
    64  	}
    65  
    66  	if value.(bool) {
    67  		t.Fatalf("Expected arm.IsResourceGroupCreated to be false, but got %q", value)
    68  	}
    69  }
    70  
    71  func DeleteTestStateBagStepDeleteResourceGroup() multistep.StateBag {
    72  	stateBag := new(multistep.BasicStateBag)
    73  	stateBag.Put(constants.ArmResourceGroupName, "Unit Test: ResourceGroupName")
    74  	stateBag.Put(constants.ArmIsResourceGroupCreated, "Unit Test: IsResourceGroupCreated")
    75  
    76  	return stateBag
    77  }