github.com/rothwerx/packer@v0.9.0/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 TestPostProcessorConfigure_compileId(t *testing.T) { 44 defer os.Setenv(CompileEnvKey, os.Getenv(CompileEnvKey)) 45 os.Setenv(CompileEnvKey, "5") 46 47 var p PostProcessor 48 if err := p.Configure(validDefaults()); err != nil { 49 t.Fatalf("err: %s", err) 50 } 51 52 if p.config.compileId != 5 { 53 t.Fatalf("bad: %#v", p.config.compileId) 54 } 55 } 56 57 func TestPostProcessorMetadata(t *testing.T) { 58 var p PostProcessor 59 if err := p.Configure(validDefaults()); err != nil { 60 t.Fatalf("err: %s", err) 61 } 62 63 artifact := new(packer.MockArtifact) 64 metadata := p.metadata(artifact) 65 if len(metadata) > 0 { 66 t.Fatalf("bad: %#v", metadata) 67 } 68 } 69 70 func TestPostProcessorMetadata_artifact(t *testing.T) { 71 config := validDefaults() 72 config["metadata"] = map[string]string{ 73 "foo": "bar", 74 } 75 76 var p PostProcessor 77 if err := p.Configure(config); err != nil { 78 t.Fatalf("err: %s", err) 79 } 80 81 artifact := new(packer.MockArtifact) 82 artifact.StateValues = map[string]interface{}{ 83 ArtifactStateMetadata: map[interface{}]interface{}{ 84 "bar": "baz", 85 }, 86 } 87 88 metadata := p.metadata(artifact) 89 expected := map[string]string{ 90 "foo": "bar", 91 "bar": "baz", 92 } 93 if !reflect.DeepEqual(metadata, expected) { 94 t.Fatalf("bad: %#v", metadata) 95 } 96 } 97 98 func TestPostProcessorMetadata_config(t *testing.T) { 99 config := validDefaults() 100 config["metadata"] = map[string]string{ 101 "foo": "bar", 102 } 103 104 var p PostProcessor 105 if err := p.Configure(config); err != nil { 106 t.Fatalf("err: %s", err) 107 } 108 109 artifact := new(packer.MockArtifact) 110 metadata := p.metadata(artifact) 111 expected := map[string]string{ 112 "foo": "bar", 113 } 114 if !reflect.DeepEqual(metadata, expected) { 115 t.Fatalf("bad: %#v", metadata) 116 } 117 } 118 119 func TestPostProcessorType(t *testing.T) { 120 var p PostProcessor 121 if err := p.Configure(validDefaults()); err != nil { 122 t.Fatalf("err: %s", err) 123 } 124 125 artifact := new(packer.MockArtifact) 126 actual := p.artifactType(artifact) 127 if actual != "foo" { 128 t.Fatalf("bad: %#v", actual) 129 } 130 } 131 132 func TestPostProcessorType_artifact(t *testing.T) { 133 var p PostProcessor 134 if err := p.Configure(validDefaults()); err != nil { 135 t.Fatalf("err: %s", err) 136 } 137 138 artifact := new(packer.MockArtifact) 139 artifact.StateValues = map[string]interface{}{ 140 ArtifactStateType: "bar", 141 } 142 actual := p.artifactType(artifact) 143 if actual != "bar" { 144 t.Fatalf("bad: %#v", actual) 145 } 146 } 147 148 func validDefaults() map[string]interface{} { 149 return map[string]interface{}{ 150 "artifact": "mitchellh/test", 151 "artifact_type": "foo", 152 "test": true, 153 } 154 }