github.com/askholme/packer@v0.7.2-0.20140924152349-70d9566a6852/builder/docker/config_test.go (about) 1 package docker 2 3 import ( 4 "testing" 5 ) 6 7 func testConfig() map[string]interface{} { 8 return map[string]interface{}{ 9 "export_path": "foo", 10 "image": "bar", 11 } 12 } 13 14 func testConfigStruct(t *testing.T) *Config { 15 c, warns, errs := NewConfig(testConfig()) 16 if len(warns) > 0 { 17 t.Fatalf("bad: %#v", len(warns)) 18 } 19 if errs != nil { 20 t.Fatalf("bad: %#v", errs) 21 } 22 23 return c 24 } 25 26 func testConfigErr(t *testing.T, warns []string, err error) { 27 if len(warns) > 0 { 28 t.Fatalf("bad: %#v", warns) 29 } 30 if err == nil { 31 t.Fatal("should error") 32 } 33 } 34 35 func testConfigOk(t *testing.T, warns []string, err error) { 36 if len(warns) > 0 { 37 t.Fatalf("bad: %#v", warns) 38 } 39 if err != nil { 40 t.Fatalf("bad: %s", err) 41 } 42 } 43 44 func TestConfigPrepare_exportPath(t *testing.T) { 45 raw := testConfig() 46 47 // No export path 48 delete(raw, "export_path") 49 _, warns, errs := NewConfig(raw) 50 testConfigOk(t, warns, errs) 51 52 // Good export path 53 raw["export_path"] = "good" 54 _, warns, errs = NewConfig(raw) 55 testConfigOk(t, warns, errs) 56 } 57 58 func TestConfigPrepare_exportPathAndCommit(t *testing.T) { 59 raw := testConfig() 60 raw["commit"] = true 61 62 // No export path 63 _, warns, errs := NewConfig(raw) 64 testConfigErr(t, warns, errs) 65 66 // No commit 67 raw["commit"] = false 68 _, warns, errs = NewConfig(raw) 69 testConfigOk(t, warns, errs) 70 } 71 72 func TestConfigPrepare_image(t *testing.T) { 73 raw := testConfig() 74 75 // No image 76 delete(raw, "image") 77 _, warns, errs := NewConfig(raw) 78 testConfigErr(t, warns, errs) 79 80 // Good image 81 raw["image"] = "path" 82 _, warns, errs = NewConfig(raw) 83 testConfigOk(t, warns, errs) 84 } 85 86 func TestConfigPrepare_pull(t *testing.T) { 87 raw := testConfig() 88 89 // No pull set 90 delete(raw, "pull") 91 c, warns, errs := NewConfig(raw) 92 testConfigOk(t, warns, errs) 93 if !c.Pull { 94 t.Fatal("should pull by default") 95 } 96 97 // Pull set 98 raw["pull"] = false 99 c, warns, errs = NewConfig(raw) 100 testConfigOk(t, warns, errs) 101 if c.Pull { 102 t.Fatal("should not pull") 103 } 104 }