github.com/cloudfoundry-incubator/stembuild@v0.0.0-20211223202937-5b61d62226c6/package_stemcell/ovftool/ovftool_darwin_test.go (about) 1 //go:build darwin 2 // +build darwin 3 4 package ovftool_test 5 6 import ( 7 "io/ioutil" 8 "os" 9 "path/filepath" 10 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 14 "github.com/cloudfoundry-incubator/stembuild/package_stemcell/ovftool" 15 ) 16 17 var _ = Describe("ovftool darwin", func() { 18 19 Context("homeDirectory", func() { 20 var home = "" 21 22 BeforeEach(func() { 23 home = os.Getenv("HOME") 24 }) 25 26 AfterEach(func() { 27 os.Setenv("HOME", home) 28 }) 29 30 It("returns value of HOME environment variable is set", func() { 31 Expect(home).NotTo(Equal("")) 32 33 testHome := ovftool.HomeDirectory() 34 Expect(testHome).To(Equal(home)) 35 }) 36 37 It("returns user HOME directory if HOME environment variable is not set", func() { 38 os.Unsetenv("HOME") 39 40 testHome := ovftool.HomeDirectory() 41 Expect(testHome).To(Equal(home)) 42 }) 43 44 }) 45 46 Context("Ovftool", func() { 47 var oldPath string 48 49 BeforeEach(func() { 50 oldPath = os.Getenv("PATH") 51 os.Unsetenv("PATH") 52 }) 53 54 AfterEach(func() { 55 os.Setenv("PATH", oldPath) 56 }) 57 58 It("when ovftool is on the path, its path is returned", func() { 59 tmpDir, err := ioutil.TempDir(os.TempDir(), "ovftmp") 60 Expect(err).ToNot(HaveOccurred()) 61 err = ioutil.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) 62 Expect(err).ToNot(HaveOccurred()) 63 os.Setenv("PATH", tmpDir) 64 65 ovfPath, err := ovftool.Ovftool([]string{}) 66 os.RemoveAll(tmpDir) 67 68 Expect(err).ToNot(HaveOccurred()) 69 Expect(ovfPath).To(Equal(filepath.Join(tmpDir, "ovftool"))) 70 }) 71 72 It("fails when given invalid set of install paths", func() { 73 tmpDir, err := ioutil.TempDir(os.TempDir(), "ovftmp") 74 Expect(err).ToNot(HaveOccurred()) 75 76 _, err = ovftool.Ovftool([]string{tmpDir}) 77 os.RemoveAll(tmpDir) 78 79 Expect(err).To(HaveOccurred()) 80 }) 81 82 It("fails when given empty set of install paths", func() { 83 _, err := ovftool.Ovftool([]string{}) 84 Expect(err).To(HaveOccurred()) 85 }) 86 87 Context("when ovftool is installed", func() { 88 var tmpDir, dummyDir string 89 90 BeforeEach(func() { 91 var err error 92 tmpDir, err = ioutil.TempDir(os.TempDir(), "ovftmp") 93 Expect(err).ToNot(HaveOccurred()) 94 dummyDir, err = ioutil.TempDir(os.TempDir(), "trashdir") 95 Expect(err).ToNot(HaveOccurred()) 96 err = ioutil.WriteFile(filepath.Join(tmpDir, "ovftool"), []byte{}, 0700) 97 Expect(err).ToNot(HaveOccurred()) 98 }) 99 100 AfterEach(func() { 101 os.RemoveAll(tmpDir) 102 os.RemoveAll(dummyDir) 103 }) 104 105 It("Returns the path to the ovftool", func() { 106 ovfPath, err := ovftool.Ovftool([]string{"notrealdir", dummyDir, tmpDir}) 107 108 Expect(err).ToNot(HaveOccurred()) 109 Expect(ovfPath).To(Equal(filepath.Join(tmpDir, "ovftool"))) 110 }) 111 }) 112 }) 113 })