github.phpd.cn/hashicorp/packer@v1.3.2/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 good one
    74  	c = testToolsConfig()
    75  	c.ParallelsToolsGuestPath = "foo"
    76  	errs = c.Prepare(testConfigTemplate(t))
    77  	if len(errs) > 0 {
    78  		t.Fatalf("should not have error: %s", errs)
    79  	}
    80  
    81  	if c.ParallelsToolsGuestPath != "foo" {
    82  		t.Fatalf("bad guest path: %s", c.ParallelsToolsGuestPath)
    83  	}
    84  }
    85  
    86  func TestToolsConfigPrepare_ParallelsToolsFlavor(t *testing.T) {
    87  	var c *ToolsConfig
    88  	var errs []error
    89  
    90  	// Test with a default value
    91  	c = testToolsConfig()
    92  	c.ParallelsToolsFlavor = ""
    93  	errs = c.Prepare(testConfigTemplate(t))
    94  	if len(errs) == 0 {
    95  		t.Fatal("should have error")
    96  	}
    97  
    98  	// Test with an bad value
    99  	c = testToolsConfig()
   100  	c.ParallelsToolsMode = "attach"
   101  	c.ParallelsToolsFlavor = ""
   102  	errs = c.Prepare(testConfigTemplate(t))
   103  	if len(errs) == 0 {
   104  		t.Fatal("should have error")
   105  	}
   106  
   107  	// Test with a good one
   108  	c = testToolsConfig()
   109  	c.ParallelsToolsMode = "disable"
   110  	c.ParallelsToolsFlavor = ""
   111  	errs = c.Prepare(testConfigTemplate(t))
   112  	if len(errs) > 0 {
   113  		t.Fatalf("should not have error: %s", errs)
   114  	}
   115  }