From c2fe35e74ea178691baaab9f216b2fa82098e96f Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 13 Sep 2014 18:54:12 -0700 Subject: [PATCH] config/module: FileGetter tests --- config/module/folder_storage_test.go | 14 ------ config/module/get_file_test.go | 75 ++++++++++++++++++++++++++++ config/module/module_test.go | 15 ++++++ 3 files changed, 90 insertions(+), 14 deletions(-) create mode 100644 config/module/get_file_test.go diff --git a/config/module/folder_storage_test.go b/config/module/folder_storage_test.go index 7be9cbe7b..4ffaac2bb 100644 --- a/config/module/folder_storage_test.go +++ b/config/module/folder_storage_test.go @@ -1,7 +1,6 @@ package module import ( - "io/ioutil" "os" "path/filepath" "testing" @@ -44,17 +43,4 @@ func TestFolderStorage(t *testing.T) { if _, err := os.Stat(mainPath); err != nil { t.Fatalf("err: %s", err) } - -} - -func tempDir(t *testing.T) string { - dir, err := ioutil.TempDir("", "tf") - if err != nil { - t.Fatalf("err: %s", err) - } - if err := os.RemoveAll(dir); err != nil { - t.Fatalf("err: %s", err) - } - - return dir } diff --git a/config/module/get_file_test.go b/config/module/get_file_test.go new file mode 100644 index 000000000..c805cd5c3 --- /dev/null +++ b/config/module/get_file_test.go @@ -0,0 +1,75 @@ +package module + +import ( + "net/url" + "os" + "path/filepath" + "testing" +) + +func TestFileGetter_impl(t *testing.T) { + var _ Getter = new(FileGetter) +} + +func TestFileGetter(t *testing.T) { + g := new(FileGetter) + dst := tempDir(t) + + // With a dir that doesn't exist + if err := g.Get(dst, testModuleURL("basic")); err != nil { + t.Fatalf("err: %s", err) + } + + // Verify the main file exists + mainPath := filepath.Join(dst, "main.tf") + if _, err := os.Stat(mainPath); err != nil { + t.Fatalf("err: %s", err) + } +} + +func TestFileGetter_sourceFile(t *testing.T) { + g := new(FileGetter) + dst := tempDir(t) + + // With a source URL that is a path to a file + u := testModuleURL("basic") + u.Path += "/main.tf" + if err := g.Get(dst, u); err == nil { + t.Fatal("should error") + } +} + +func TestFileGetter_sourceNoExist(t *testing.T) { + g := new(FileGetter) + dst := tempDir(t) + + // With a source URL that doesn't exist + u := testModuleURL("basic") + u.Path += "/main" + if err := g.Get(dst, u); err == nil { + t.Fatal("should error") + } +} + +func TestFileGetter_dir(t *testing.T) { + g := new(FileGetter) + dst := tempDir(t) + + if err := os.MkdirAll(dst, 0755); err != nil { + t.Fatalf("err: %s", err) + } + + // With a dir that exists that isn't a symlink + if err := g.Get(dst, testModuleURL("basic")); err == nil { + t.Fatal("should error") + } +} + +func testModuleURL(n string) *url.URL { + u, err := url.Parse(testModule(n)) + if err != nil { + panic(err) + } + + return u +} diff --git a/config/module/module_test.go b/config/module/module_test.go index 01035f269..8360a8bf2 100644 --- a/config/module/module_test.go +++ b/config/module/module_test.go @@ -1,12 +1,27 @@ package module import ( + "io/ioutil" "net/url" + "os" "path/filepath" + "testing" ) const fixtureDir = "./test-fixtures" +func tempDir(t *testing.T) string { + dir, err := ioutil.TempDir("", "tf") + if err != nil { + t.Fatalf("err: %s", err) + } + if err := os.RemoveAll(dir); err != nil { + t.Fatalf("err: %s", err) + } + + return dir +} + func testModule(n string) string { p := filepath.Join(fixtureDir, n) p, err := filepath.Abs(p)