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  }