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 }