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