github.com/ttysteale/packer@v0.8.2-0.20150708160520-e5f8ea386ed8/post-processor/atlas/post-processor_test.go (about) 1 package atlas 2 3 import ( 4 "os" 5 "reflect" 6 "testing" 7 8 "github.com/mitchellh/packer/packer" 9 ) 10 11 func TestPostProcessorConfigure(t *testing.T) { 12 currentEnv := os.Getenv("ATLAS_TOKEN") 13 os.Setenv("ATLAS_TOKEN", "") 14 defer os.Setenv("ATLAS_TOKEN", currentEnv) 15 16 var p PostProcessor 17 if err := p.Configure(validDefaults()); err != nil { 18 t.Fatalf("err: %s", err) 19 } 20 21 if p.client == nil { 22 t.Fatal("should have client") 23 } 24 if p.client.Token != "" { 25 t.Fatal("should not have token") 26 } 27 } 28 29 func TestPostProcessorConfigure_buildId(t *testing.T) { 30 defer os.Setenv(BuildEnvKey, os.Getenv(BuildEnvKey)) 31 os.Setenv(BuildEnvKey, "5") 32 33 var p PostProcessor 34 if err := p.Configure(validDefaults()); err != nil { 35 t.Fatalf("err: %s", err) 36 } 37 38 if p.config.buildId != 5 { 39 t.Fatalf("bad: %#v", p.config.buildId) 40 } 41 } 42 43 func TestPostProcessorMetadata(t *testing.T) { 44 var p PostProcessor 45 if err := p.Configure(validDefaults()); err != nil { 46 t.Fatalf("err: %s", err) 47 } 48 49 artifact := new(packer.MockArtifact) 50 metadata := p.metadata(artifact) 51 if len(metadata) > 0 { 52 t.Fatalf("bad: %#v", metadata) 53 } 54 } 55 56 func TestPostProcessorMetadata_artifact(t *testing.T) { 57 config := validDefaults() 58 config["metadata"] = map[string]string{ 59 "foo": "bar", 60 } 61 62 var p PostProcessor 63 if err := p.Configure(config); err != nil { 64 t.Fatalf("err: %s", err) 65 } 66 67 artifact := new(packer.MockArtifact) 68 artifact.StateValues = map[string]interface{}{ 69 ArtifactStateMetadata: map[interface{}]interface{}{ 70 "bar": "baz", 71 }, 72 } 73 74 metadata := p.metadata(artifact) 75 expected := map[string]string{ 76 "foo": "bar", 77 "bar": "baz", 78 } 79 if !reflect.DeepEqual(metadata, expected) { 80 t.Fatalf("bad: %#v", metadata) 81 } 82 } 83 84 func TestPostProcessorMetadata_config(t *testing.T) { 85 config := validDefaults() 86 config["metadata"] = map[string]string{ 87 "foo": "bar", 88 } 89 90 var p PostProcessor 91 if err := p.Configure(config); err != nil { 92 t.Fatalf("err: %s", err) 93 } 94 95 artifact := new(packer.MockArtifact) 96 metadata := p.metadata(artifact) 97 expected := map[string]string{ 98 "foo": "bar", 99 } 100 if !reflect.DeepEqual(metadata, expected) { 101 t.Fatalf("bad: %#v", metadata) 102 } 103 } 104 105 func TestPostProcessorType(t *testing.T) { 106 var p PostProcessor 107 if err := p.Configure(validDefaults()); err != nil { 108 t.Fatalf("err: %s", err) 109 } 110 111 artifact := new(packer.MockArtifact) 112 actual := p.artifactType(artifact) 113 if actual != "foo" { 114 t.Fatalf("bad: %#v", actual) 115 } 116 } 117 118 func TestPostProcessorType_artifact(t *testing.T) { 119 var p PostProcessor 120 if err := p.Configure(validDefaults()); err != nil { 121 t.Fatalf("err: %s", err) 122 } 123 124 artifact := new(packer.MockArtifact) 125 artifact.StateValues = map[string]interface{}{ 126 ArtifactStateType: "bar", 127 } 128 actual := p.artifactType(artifact) 129 if actual != "bar" { 130 t.Fatalf("bad: %#v", actual) 131 } 132 } 133 134 func validDefaults() map[string]interface{} { 135 return map[string]interface{}{ 136 "artifact": "mitchellh/test", 137 "artifact_type": "foo", 138 "test": true, 139 } 140 }