github.com/StackPointCloud/packer@v0.10.2-0.20180716202532-b28098e0f79b/post-processor/vagrant-cloud/post-processor_test.go (about)

     1  package vagrantcloud
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/hashicorp/packer/packer"
     9  )
    10  
    11  func testGoodConfig() map[string]interface{} {
    12  	return map[string]interface{}{
    13  		"access_token":        "foo",
    14  		"version_description": "bar",
    15  		"box_tag":             "hashicorp/precise64",
    16  		"version":             "0.5",
    17  	}
    18  }
    19  
    20  func testBadConfig() map[string]interface{} {
    21  	return map[string]interface{}{
    22  		"access_token":        "foo",
    23  		"box_tag":             "baz",
    24  		"version_description": "bar",
    25  	}
    26  }
    27  
    28  func TestPostProcessor_Configure_fromVagrantEnv(t *testing.T) {
    29  	var p PostProcessor
    30  	config := testGoodConfig()
    31  	config["access_token"] = ""
    32  	os.Setenv("VAGRANT_CLOUD_TOKEN", "bar")
    33  	defer func() {
    34  		os.Setenv("VAGRANT_CLOUD_TOKEN", "")
    35  	}()
    36  
    37  	if err := p.Configure(config); err != nil {
    38  		t.Fatalf("err: %s", err)
    39  	}
    40  
    41  	if p.config.AccessToken != "bar" {
    42  		t.Fatalf("Expected to get token from VAGRANT_CLOUD_TOKEN env var. Got '%s' instead",
    43  			p.config.AccessToken)
    44  	}
    45  }
    46  
    47  func TestPostProcessor_Configure_fromAtlasEnv(t *testing.T) {
    48  	var p PostProcessor
    49  	config := testGoodConfig()
    50  	config["access_token"] = ""
    51  	os.Setenv("ATLAS_TOKEN", "foo")
    52  	defer func() {
    53  		os.Setenv("ATLAS_TOKEN", "")
    54  	}()
    55  
    56  	if err := p.Configure(config); err != nil {
    57  		t.Fatalf("err: %s", err)
    58  	}
    59  
    60  	if p.config.AccessToken != "foo" {
    61  		t.Fatalf("Expected to get token from ATLAS_TOKEN env var. Got '%s' instead",
    62  			p.config.AccessToken)
    63  	}
    64  
    65  	if !p.warnAtlasToken {
    66  		t.Fatal("Expected warn flag to be set when getting token from atlas env var.")
    67  	}
    68  }
    69  
    70  func TestPostProcessor_Configure_Good(t *testing.T) {
    71  	var p PostProcessor
    72  	if err := p.Configure(testGoodConfig()); err != nil {
    73  		t.Fatalf("err: %s", err)
    74  	}
    75  }
    76  
    77  func TestPostProcessor_Configure_Bad(t *testing.T) {
    78  	var p PostProcessor
    79  	if err := p.Configure(testBadConfig()); err == nil {
    80  		t.Fatalf("should have err")
    81  	}
    82  }
    83  
    84  func testUi() *packer.BasicUi {
    85  	return &packer.BasicUi{
    86  		Reader: new(bytes.Buffer),
    87  		Writer: new(bytes.Buffer),
    88  	}
    89  }
    90  
    91  func TestPostProcessor_ImplementsPostProcessor(t *testing.T) {
    92  	var _ packer.PostProcessor = new(PostProcessor)
    93  }
    94  
    95  func TestProviderFromBuilderName(t *testing.T) {
    96  	if providerFromBuilderName("foobar") != "foobar" {
    97  		t.Fatal("should copy unknown provider")
    98  	}
    99  
   100  	if providerFromBuilderName("vmware") != "vmware_desktop" {
   101  		t.Fatal("should convert provider")
   102  	}
   103  }