github.com/askholme/packer@v0.7.2-0.20140924152349-70d9566a6852/builder/parallels/common/tools_config_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 ) 6 7 func testToolsConfig() *ToolsConfig { 8 return &ToolsConfig{ 9 ParallelsToolsFlavor: "foo", 10 ParallelsToolsGuestPath: "foo", 11 ParallelsToolsMode: "attach", 12 } 13 } 14 15 func TestToolsConfigPrepare(t *testing.T) { 16 c := testToolsConfig() 17 errs := c.Prepare(testConfigTemplate(t)) 18 if len(errs) > 0 { 19 t.Fatalf("bad err: %#v", errs) 20 } 21 } 22 23 func TestToolsConfigPrepare_ParallelsToolsMode(t *testing.T) { 24 var c *ToolsConfig 25 var errs []error 26 27 // Test default mode 28 c = testToolsConfig() 29 c.ParallelsToolsMode = "" 30 errs = c.Prepare(testConfigTemplate(t)) 31 if len(errs) > 0 { 32 t.Fatalf("should not have error: %#v", errs) 33 } 34 if c.ParallelsToolsMode != ParallelsToolsModeUpload { 35 t.Errorf("bad parallels tools mode: %s", c.ParallelsToolsMode) 36 } 37 38 // Test another mode 39 c = testToolsConfig() 40 c.ParallelsToolsMode = "attach" 41 errs = c.Prepare(testConfigTemplate(t)) 42 if len(errs) > 0 { 43 t.Fatalf("should not have error: %#v", errs) 44 } 45 if c.ParallelsToolsMode != ParallelsToolsModeAttach { 46 t.Fatalf("bad mode: %s", c.ParallelsToolsMode) 47 } 48 49 // Test invalid mode 50 c = testToolsConfig() 51 c.ParallelsToolsMode = "invalid_mode" 52 errs = c.Prepare(testConfigTemplate(t)) 53 if len(errs) == 0 { 54 t.Fatal("should have error") 55 } 56 } 57 58 func TestToolsConfigPrepare_ParallelsToolsGuestPath(t *testing.T) { 59 var c *ToolsConfig 60 var errs []error 61 62 // Test default path 63 c = testToolsConfig() 64 c.ParallelsToolsGuestPath = "" 65 errs = c.Prepare(testConfigTemplate(t)) 66 if len(errs) > 0 { 67 t.Fatalf("should not have error: %#v", errs) 68 } 69 if c.ParallelsToolsGuestPath == "" { 70 t.Fatal("should not be empty") 71 } 72 73 // Test with a bad value 74 c = testToolsConfig() 75 c.ParallelsToolsGuestPath = "{{{nope}" 76 errs = c.Prepare(testConfigTemplate(t)) 77 if len(errs) == 0 { 78 t.Fatal("should have error") 79 } 80 81 // Test with a good one 82 c = testToolsConfig() 83 c.ParallelsToolsGuestPath = "foo" 84 errs = c.Prepare(testConfigTemplate(t)) 85 if len(errs) > 0 { 86 t.Fatalf("should not have error: %s", errs) 87 } 88 89 if c.ParallelsToolsGuestPath != "foo" { 90 t.Fatalf("bad guest path: %s", c.ParallelsToolsGuestPath) 91 } 92 } 93 94 func TestToolsConfigPrepare_ParallelsToolsFlavor(t *testing.T) { 95 var c *ToolsConfig 96 var errs []error 97 98 // Test with a default value 99 c = testToolsConfig() 100 c.ParallelsToolsFlavor = "" 101 errs = c.Prepare(testConfigTemplate(t)) 102 if len(errs) == 0 { 103 t.Fatal("should have error") 104 } 105 106 // Test with an bad value 107 c = testToolsConfig() 108 c.ParallelsToolsMode = "attach" 109 c.ParallelsToolsFlavor = "" 110 errs = c.Prepare(testConfigTemplate(t)) 111 if len(errs) == 0 { 112 t.Fatal("should have error") 113 } 114 115 // Test with a good one 116 c = testToolsConfig() 117 c.ParallelsToolsMode = "disable" 118 c.ParallelsToolsFlavor = "" 119 errs = c.Prepare(testConfigTemplate(t)) 120 if len(errs) > 0 { 121 t.Fatalf("should not have error: %s", errs) 122 } 123 }