github.com/mmcquillan/packer@v1.1.1-0.20171009221028-c85cf0483a5d/builder/oneandone/builder_test.go (about) 1 package oneandone 2 3 import ( 4 "fmt" 5 "github.com/hashicorp/packer/packer" 6 "testing" 7 ) 8 9 func testConfig() map[string]interface{} { 10 return map[string]interface{}{ 11 "type": "oneandone", 12 "disk_size": "50", 13 "snapshot_name": "test5", 14 "image": "ubuntu1604-64min", 15 } 16 } 17 18 func TestImplementsBuilder(t *testing.T) { 19 var raw interface{} 20 raw = &Builder{} 21 if _, ok := raw.(packer.Builder); !ok { 22 t.Fatalf("Builder should be a builder") 23 } 24 } 25 26 func TestBuilder_Prepare_BadType(t *testing.T) { 27 b := &Builder{} 28 c := map[string]interface{}{ 29 "api_key": []string{}, 30 } 31 32 warns, err := b.Prepare(c) 33 if len(warns) > 0 { 34 t.Fatalf("bad: %#v", warns) 35 } 36 if err == nil { 37 fmt.Println(err) 38 fmt.Println(warns) 39 t.Fatalf("prepare should fail") 40 } 41 } 42 43 func TestBuilderPrepare_InvalidKey(t *testing.T) { 44 var b Builder 45 config := testConfig() 46 47 config["i_should_not_be_valid"] = true 48 warnings, err := b.Prepare(config) 49 if len(warnings) > 0 { 50 t.Fatalf("bad: %#v", warnings) 51 } 52 if err == nil { 53 t.Fatal("should have error") 54 } 55 }