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  }