github.phpd.cn/hashicorp/packer@v1.3.2/builder/ncloud/step_create_server_image_test.go (about) 1 package ncloud 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 ncloud "github.com/NaverCloudPlatform/ncloud-sdk-go/sdk" 9 10 "github.com/hashicorp/packer/helper/multistep" 11 ) 12 13 func TestStepCreateServerImageShouldFailIfOperationCreateServerImageFails(t *testing.T) { 14 var testSubject = &StepCreateServerImage{ 15 CreateServerImage: func(serverInstanceNo string) (*ncloud.ServerImage, error) { 16 return nil, fmt.Errorf("!! Unit Test FAIL !!") 17 }, 18 Say: func(message string) {}, 19 Error: func(e error) {}, 20 } 21 22 stateBag := createTestStateBagStepCreateServerImage() 23 24 var result = testSubject.Run(context.Background(), stateBag) 25 26 if result != multistep.ActionHalt { 27 t.Fatalf("Expected the step to return 'ActionHalt', but got '%d'.", result) 28 } 29 30 if _, ok := stateBag.GetOk("Error"); ok == false { 31 t.Fatal("Expected the step to set stateBag['Error'], but it was not.") 32 } 33 } 34 func TestStepCreateServerImageShouldPassIfOperationCreateServerImagePasses(t *testing.T) { 35 var testSubject = &StepCreateServerImage{ 36 CreateServerImage: func(serverInstanceNo string) (*ncloud.ServerImage, error) { return nil, nil }, 37 Say: func(message string) {}, 38 Error: func(e error) {}, 39 } 40 41 stateBag := createTestStateBagStepCreateServerImage() 42 43 var result = testSubject.Run(context.Background(), stateBag) 44 45 if result != multistep.ActionContinue { 46 t.Fatalf("Expected the step to return 'ActionContinue', but got '%d'.", result) 47 } 48 49 if _, ok := stateBag.GetOk("Error"); ok == true { 50 t.Fatalf("Expected the step to not set stateBag['Error'], but it was.") 51 } 52 } 53 54 func createTestStateBagStepCreateServerImage() multistep.StateBag { 55 stateBag := new(multistep.BasicStateBag) 56 57 stateBag.Put("InstanceNo", "a") 58 59 return stateBag 60 }