示例#1
0
	. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
	. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
)

var _ = Describe("FileIndex", func() {
	var (
		fs            boshsys.FileSystem
		indexFilePath string
		index         FileIndex
	)

	BeforeEach(func() {
		logger := boshlog.NewLogger(boshlog.LevelNone)
		fs = boshsys.NewOsFileSystem(logger)

		file, err := fs.TempFile("file-index")
		Expect(err).ToNot(HaveOccurred())

		indexFilePath = file.Name()

		err = file.Close()
		Expect(err).ToNot(HaveOccurred())

		err = fs.RemoveAll(indexFilePath)
		Expect(err).ToNot(HaveOccurred())

		index = NewFileIndex(indexFilePath, fs)
	})

	AfterEach(func() {
		err := fs.RemoveAll(indexFilePath)
		BeforeEach(func() {
			var err error
			testTempDir, err = ioutil.TempDir("", "temp_root_configurator_test")
			Expect(err).ToNot(HaveOccurred())

			tempRoot = filepath.Join(testTempDir, "my-temp-root")
			logger = boshlog.NewLogger(boshlog.LevelNone)
			fs = boshsys.NewOsFileSystem(logger)
		})

		AfterEach(func() {
			os.RemoveAll(testTempDir)
		})

		var expectTempFileToBeCreatedUnderRoot = func(root, prefix string, fs boshsys.FileSystem) {
			file, err := fs.TempFile(prefix)
			Expect(err).ToNot(HaveOccurred())
			defer os.Remove(file.Name())

			Expect(file.Name()).To(HavePrefix(filepath.Join(root, prefix)))
		}

		Context("when the temp root already exists", func() {
			var existingFilePath string

			BeforeEach(func() {
				os.MkdirAll(tempRoot, os.ModePerm)
				existingFilePath = filepath.Join(tempRoot, "existing-file")
				ioutil.WriteFile(existingFilePath, []byte{}, os.ModePerm)
			})