forked from toolshed/abra
		
	tests: around 60% code coverage for config package
This commit is contained in:
		@ -75,6 +75,8 @@ func GetApp(apps AppFiles, name AppName) (App, error) {
 | 
			
		||||
	return app, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: maybe better names than read and get
 | 
			
		||||
 | 
			
		||||
func readAppFile(appFile AppFile, name AppName) (App, error) {
 | 
			
		||||
	env, err := readEnv(appFile.Path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										113
									
								
								config/env_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								config/env_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,113 @@
 | 
			
		||||
package config
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"path"
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var testFolder = os.ExpandEnv("$PWD/../tests/resources/test_folder")
 | 
			
		||||
var validAbraConf = os.ExpandEnv("$PWD/../tests/resources/valid_abra_config")
 | 
			
		||||
 | 
			
		||||
// make sure these are in alphabetical order
 | 
			
		||||
var tFolders = []string{"folder1", "folder2"}
 | 
			
		||||
var tFiles = []string{"bar", "foo"}
 | 
			
		||||
 | 
			
		||||
var appName = "ecloud"
 | 
			
		||||
var serverName = "evil.corp"
 | 
			
		||||
 | 
			
		||||
var expectedAppEnv = AppEnv{
 | 
			
		||||
	"DOMAIN": "ecloud.evil.corp",
 | 
			
		||||
	"TYPE":   "ecloud",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var expectedApp = App{
 | 
			
		||||
	Name:   appName,
 | 
			
		||||
	Type:   expectedAppEnv["TYPE"],
 | 
			
		||||
	Domain: expectedAppEnv["DOMAIN"],
 | 
			
		||||
	Env:    expectedAppEnv,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var expectedAppFile = AppFile{
 | 
			
		||||
	Path:   path.Join(validAbraConf, "servers", serverName, appName+".env"),
 | 
			
		||||
	Server: serverName,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var expectedAppFiles = map[string]AppFile{
 | 
			
		||||
	appName: expectedAppFile,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// var expectedServerNames = []string{"evil.corp"}
 | 
			
		||||
 | 
			
		||||
func TestGetAllFoldersInDirectory(t *testing.T) {
 | 
			
		||||
	folders, err := getAllFoldersInDirectory(testFolder)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(folders, tFolders) {
 | 
			
		||||
		t.Fatalf("did not get expected folders. Expected: (%s), Got: (%s)", strings.Join(tFolders, ","), strings.Join(folders, ","))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestGetAllFilesInDirectory(t *testing.T) {
 | 
			
		||||
	files, err := getAllFilesInDirectory(testFolder)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	var fileNames []string
 | 
			
		||||
	for _, file := range files {
 | 
			
		||||
		fileNames = append(fileNames, file.Name())
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(fileNames, tFiles) {
 | 
			
		||||
		t.Fatalf("did not get expected files. Expected: (%s), Got: (%s)", strings.Join(tFiles, ","), strings.Join(fileNames, ","))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestReadEnv(t *testing.T) {
 | 
			
		||||
	env, err := readEnv(expectedAppFile.Path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(env, expectedAppEnv) {
 | 
			
		||||
		t.Fatalf(
 | 
			
		||||
			"did not get expected application settings. Expected: DOMAIN=%s TYPE=%s; Got: DOMAIN=%s TYPE=%s",
 | 
			
		||||
			expectedAppEnv["DOMAIN"],
 | 
			
		||||
			expectedAppEnv["TYPE"],
 | 
			
		||||
			env["DOMAIN"],
 | 
			
		||||
			env["TYPE"],
 | 
			
		||||
		)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestMakeApp(t *testing.T) {
 | 
			
		||||
	app, err := makeApp(expectedAppEnv, appName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(app, expectedApp) {
 | 
			
		||||
		t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestReadAppFile(t *testing.T) {
 | 
			
		||||
	app, err := readAppFile(expectedAppFile, appName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(app, expectedApp) {
 | 
			
		||||
		t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestGetApp(t *testing.T) {
 | 
			
		||||
	// TODO: Test failures as well as successes
 | 
			
		||||
	app, err := GetApp(expectedAppFiles, appName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	if !reflect.DeepEqual(app, expectedApp) {
 | 
			
		||||
		t.Fatalf("did not get expected app type. Expected: %s; Got: %s", app, expectedApp)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										0
									
								
								tests/resources/test_folder/bar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/resources/test_folder/bar
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										5
									
								
								tests/resources/test_folder/folder1/readme.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								tests/resources/test_folder/folder1/readme.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
--------- readme.txt---------
 | 
			
		||||
 | 
			
		||||
        LEAVE ME HERE
 | 
			
		||||
 | 
			
		||||
-----------------------------
 | 
			
		||||
							
								
								
									
										0
									
								
								tests/resources/test_folder/folder2/fsociety00.dat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/resources/test_folder/folder2/fsociety00.dat
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								tests/resources/test_folder/foo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/resources/test_folder/foo
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
TYPE=ecloud
 | 
			
		||||
DOMAIN=ecloud.evil.corp
 | 
			
		||||
		Reference in New Issue
	
	Block a user