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 }