github.com/rahart/packer@v0.12.2-0.20161229105310-282bb6ad370f/builder/vmware/iso/driver_esx5_test.go (about)

     1  package iso
     2  
     3  import (
     4  	"fmt"
     5  	"net"
     6  	"testing"
     7  
     8  	"github.com/mitchellh/multistep"
     9  	vmwcommon "github.com/mitchellh/packer/builder/vmware/common"
    10  )
    11  
    12  func TestESX5Driver_implDriver(t *testing.T) {
    13  	var _ vmwcommon.Driver = new(ESX5Driver)
    14  }
    15  
    16  func TestESX5Driver_UpdateVMX(t *testing.T) {
    17  	var driver ESX5Driver
    18  	data := make(map[string]string)
    19  	driver.UpdateVMX("0.0.0.0", "", 5900, data)
    20  	if _, ok := data["remotedisplay.vnc.ip"]; ok {
    21  		// Do not add the remotedisplay.vnc.ip on ESXi
    22  		t.Fatal("invalid VMX data key: remotedisplay.vnc.ip")
    23  	}
    24  	if enabled := data["remotedisplay.vnc.enabled"]; enabled != "TRUE" {
    25  		t.Errorf("bad VMX data for key remotedisplay.vnc.enabled: %v", enabled)
    26  	}
    27  	if port := data["remotedisplay.vnc.port"]; port != fmt.Sprint(port) {
    28  		t.Errorf("bad VMX data for key remotedisplay.vnc.port: %v", port)
    29  	}
    30  }
    31  
    32  func TestESX5Driver_implOutputDir(t *testing.T) {
    33  	var _ vmwcommon.OutputDir = new(ESX5Driver)
    34  }
    35  
    36  func TestESX5Driver_implVNCAddressFinder(t *testing.T) {
    37  	var _ vmwcommon.VNCAddressFinder = new(ESX5Driver)
    38  }
    39  
    40  func TestESX5Driver_implRemoteDriver(t *testing.T) {
    41  	var _ RemoteDriver = new(ESX5Driver)
    42  }
    43  
    44  func TestESX5Driver_HostIP(t *testing.T) {
    45  	expected_host := "127.0.0.1"
    46  
    47  	//create mock SSH server
    48  	listen, _ := net.Listen("tcp", fmt.Sprintf("%s:0", expected_host))
    49  	port := listen.Addr().(*net.TCPAddr).Port
    50  	defer listen.Close()
    51  
    52  	driver := ESX5Driver{Host: "localhost", Port: uint(port)}
    53  
    54  	if host, _ := driver.HostIP(); host != expected_host {
    55  		t.Error(fmt.Sprintf("Expected string, %s but got %s", expected_host, host))
    56  	}
    57  }
    58  
    59  func TestESX5Driver_CommHost(t *testing.T) {
    60  	const expected_host = "127.0.0.1"
    61  
    62  	config := testConfig()
    63  	config["communicator"] = "winrm"
    64  	config["winrm_username"] = "username"
    65  	config["winrm_password"] = "password"
    66  	config["winrm_host"] = expected_host
    67  
    68  	var b Builder
    69  	warns, err := b.Prepare(config)
    70  	if len(warns) > 0 {
    71  		t.Fatalf("bad: %#v", warns)
    72  	}
    73  	if err != nil {
    74  		t.Fatalf("should not have error: %s", err)
    75  	}
    76  	if host := b.config.CommConfig.Host(); host != expected_host {
    77  		t.Fatalf("setup failed, bad host name: %s", host)
    78  	}
    79  
    80  	state := new(multistep.BasicStateBag)
    81  	state.Put("config", &b.config)
    82  
    83  	var driver ESX5Driver
    84  	host, err := driver.CommHost(state)
    85  	if err != nil {
    86  		t.Fatalf("should not have error: %s", err)
    87  	}
    88  	if host != expected_host {
    89  		t.Errorf("bad host name: %s", host)
    90  	}
    91  	address, ok := state.GetOk("vm_address")
    92  	if !ok {
    93  		t.Error("state not updated with vm_address")
    94  	}
    95  	if address.(string) != expected_host {
    96  		t.Errorf("bad vm_address: %s", address.(string))
    97  	}
    98  }