github.com/amanya/packer@v0.12.1-0.20161117214323-902ac5ab2eb6/builder/cloudstack/builder_test.go (about)

     1  package cloudstack
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/mitchellh/packer/packer"
     7  )
     8  
     9  func TestBuilder_Impl(t *testing.T) {
    10  	var raw interface{} = &Builder{}
    11  
    12  	if _, ok := raw.(packer.Builder); !ok {
    13  		t.Fatalf("Builder does not implement packer.Builder")
    14  	}
    15  }
    16  
    17  func TestBuilder_Prepare(t *testing.T) {
    18  	cases := map[string]struct {
    19  		Config map[string]interface{}
    20  		Err    bool
    21  	}{
    22  		"good": {
    23  			Config: map[string]interface{}{
    24  				"api_url":          "https://cloudstack.com/client/api",
    25  				"api_key":          "some-api-key",
    26  				"secret_key":       "some-secret-key",
    27  				"cidr_list":        []interface{}{"0.0.0.0/0"},
    28  				"disk_size":        "20",
    29  				"network":          "c5ed8a14-3f21-4fa9-bd74-bb887fc0ed0d",
    30  				"service_offering": "a29c52b1-a83d-4123-a57d-4548befa47a0",
    31  				"source_template":  "d31e6af5-94a8-4756-abf3-6493c38db7e5",
    32  				"ssh_username":     "ubuntu",
    33  				"template_os":      "52d54d24-cef1-480b-b963-527703aa4ff9",
    34  				"zone":             "a3b594d9-25e9-47c1-9c03-7a5fc61e3f43",
    35  			},
    36  			Err: false,
    37  		},
    38  		"bad": {
    39  			Err: true,
    40  		},
    41  	}
    42  
    43  	b := &Builder{}
    44  
    45  	for desc, tc := range cases {
    46  		_, errs := b.Prepare(tc.Config)
    47  
    48  		if tc.Err {
    49  			if errs == nil {
    50  				t.Fatalf("%s prepare should err", desc)
    51  			}
    52  		} else {
    53  			if errs != nil {
    54  				t.Fatalf("%s prepare should not fail: %s", desc, errs)
    55  			}
    56  		}
    57  	}
    58  }