tests for utils/utils.go

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett 2015-01-31 14:24:06 -05:00
parent 6810f67463
commit 3e69997dcf
5 changed files with 163 additions and 6 deletions

View File

@ -1,4 +1,12 @@
#!/bin/sh
set -e
ARGS=$@
if [ -z "$ARGS" ]; then
ARGS="./..."
fi
echo $ARGS
docker build -t docker-machine .
exec docker run --rm docker-machine go test -v -short ./...
exec docker run --rm docker-machine godep go test -v -short $ARGS

1
utils/b2d_test.go Normal file
View File

@ -0,0 +1 @@
package utils

1
utils/certs_test.go Normal file
View File

@ -0,0 +1 @@
package utils

View File

@ -7,14 +7,17 @@ import (
"runtime"
)
func GetHomeDir() string {
if runtime.GOOS == "windows" {
return os.Getenv("USERPROFILE")
}
return os.Getenv("HOME")
}
func GetBaseDir() string {
baseDir := os.Getenv("MACHINE_DIR")
if baseDir == "" {
if runtime.GOOS == "windows" {
baseDir = os.Getenv("USERPROFILE")
} else {
baseDir = os.Getenv("HOME")
}
baseDir = GetHomeDir()
}
return baseDir
}

144
utils/utils_test.go Normal file
View File

@ -0,0 +1,144 @@
package utils
import (
"io/ioutil"
"os"
"path"
"path/filepath"
"runtime"
"strings"
"testing"
)
func TestGetBaseDir(t *testing.T) {
homeDir := GetHomeDir()
baseDir := GetBaseDir()
if strings.Index(homeDir, baseDir) != 0 {
t.Fatalf("expected base dir with prefix %s; received %s", homeDir, baseDir)
}
}
func TestGetCustomBaseDir(t *testing.T) {
root := "/tmp"
os.Setenv("MACHINE_DIR", root)
baseDir := GetBaseDir()
if strings.Index(root, baseDir) != 0 {
t.Fatalf("expected base dir with prefix %s; received %s", root, baseDir)
}
}
func TestGetDockerDir(t *testing.T) {
root := "/tmp"
os.Setenv("MACHINE_DIR", root)
dockerDir := GetDockerDir()
if strings.Index(dockerDir, root) != 0 {
t.Fatalf("expected docker dir with prefix %s; received %s", root, dockerDir)
}
path, filename := path.Split(dockerDir)
if strings.Index(path, root) != 0 {
t.Fatalf("expected base path of %s; received %s", root, path)
}
if filename != ".docker" {
t.Fatalf("expected docker dir \".docker\"; received %s", filename)
}
}
func TestGetMachineDir(t *testing.T) {
root := "/tmp"
os.Setenv("MACHINE_DIR", root)
machineDir := GetMachineDir()
if strings.Index(machineDir, root) != 0 {
t.Fatalf("expected machine dir with prefix %s; received %s", root, machineDir)
}
path, filename := path.Split(machineDir)
if strings.Index(path, root) != 0 {
t.Fatalf("expected base path of %s; received %s", root, path)
}
if filename != "machines" {
t.Fatalf("expected machine dir \"machines\"; received %s", filename)
}
}
func TestGetMachineClientCertDir(t *testing.T) {
root := "/tmp"
os.Setenv("MACHINE_DIR", root)
clientDir := GetMachineClientCertDir()
if strings.Index(clientDir, root) != 0 {
t.Fatalf("expected machine client cert dir with prefix %s; received %s", root, clientDir)
}
path, filename := path.Split(clientDir)
if strings.Index(path, root) != 0 {
t.Fatalf("expected base path of %s; received %s", root, path)
}
if filename != ".client" {
t.Fatalf("expected machine client dir \".client\"; received %s", filename)
}
}
func TestCopyFile(t *testing.T) {
testStr := "test-machine"
srcFile, err := ioutil.TempFile("", "machine-test-")
if err != nil {
t.Fatal(err)
}
srcFi, err := srcFile.Stat()
if err != nil {
t.Fatal(err)
}
srcFile.Write([]byte(testStr))
srcFile.Close()
srcFilePath := filepath.Join(os.TempDir(), srcFi.Name())
destFile, err := ioutil.TempFile("", "machine-copy-test-")
if err != nil {
t.Fatal(err)
}
destFi, err := destFile.Stat()
if err != nil {
t.Fatal(err)
}
destFile.Close()
destFilePath := filepath.Join(os.TempDir(), destFi.Name())
if err := CopyFile(srcFilePath, destFilePath); err != nil {
t.Fatal(err)
}
data, err := ioutil.ReadFile(destFilePath)
if err != nil {
t.Fatal(err)
}
if string(data) != testStr {
t.Fatalf("expected data \"%s\"; received \"%\"", testStr, string(data))
}
}
func TestGetUsername(t *testing.T) {
currentUser := "unknown"
switch runtime.GOOS {
case "darwin,linux":
currentUser = os.Getenv("USER")
case "windows":
currentUser = os.Getenv("USERNAME")
}
username := GetUsername()
if username != currentUser {
t.Fatalf("expected username %s; received %s", currentUser, username)
}
}