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