Expect(err).ToNot(HaveOccurred()) fileBytes := readFile(readOnlyFile) Expect(string(fileBytes)).To(Equal("some data")) }) It("writes", func() { blobManager := NewBlobManager(fs, basePath) fs.WriteFileString(blobPath, "some data") defer fs.RemoveAll(blobPath) err := blobManager.Write(blobId, toWrite) Expect(err).ToNot(HaveOccurred()) contents, err := fs.ReadFileString(blobPath) Expect(err).ToNot(HaveOccurred()) Expect(contents).To(Equal("new data")) }) Context("when it writes", func() { It("creates and closes the file", func() { fs_ := boshsysfake.NewFakeFileSystem() blobManager := NewBlobManager(fs_, basePath) err := blobManager.Write(blobId, toWrite) Expect(err).ToNot(HaveOccurred()) fileStats, err := fs_.FindFileStats(blobPath) Expect(err).ToNot(HaveOccurred()) Expect(fileStats.Open).To(BeFalse()) }) It("creates file with correct permissions", func() {
"./app.stdout.log", "./other_logs/", "./some_directory/", "./some_directory/sub_dir/", "./some_directory/sub_dir/other_sub_dir/", "./some_directory/sub_dir/other_sub_dir/.keep", "./other_logs/more_logs/", "./other_logs/other_app.stderr.log", "./other_logs/other_app.stdout.log", "./other_logs/more_logs/more.stdout.log", )) _, _, _, err = cmdRunner.RunCommand("tar", "-xzpf", tgzName, "-C", dstDir) Expect(err).ToNot(HaveOccurred()) content, err := fs.ReadFileString(dstDir + "/app.stdout.log") Expect(err).ToNot(HaveOccurred()) Expect(content).To(ContainSubstring("this is app stdout")) content, err = fs.ReadFileString(dstDir + "/app.stderr.log") Expect(err).ToNot(HaveOccurred()) Expect(content).To(ContainSubstring("this is app stderr")) content, err = fs.ReadFileString(dstDir + "/other_logs/other_app.stdout.log") Expect(err).ToNot(HaveOccurred()) Expect(content).To(ContainSubstring("this is other app stdout")) }) }) Describe("DecompressFileToDir", func() { It("decompresses the file to the given directory", func() {
Expect(err).ToNot(HaveOccurred()) Expect(copiedFiles).To(Equal([]string{ dstDir + "/app.stderr.log", dstDir + "/app.stdout.log", dstDir + "/other_logs/more_logs/more.stdout.log", dstDir + "/other_logs/other_app.stdout.log", dstDir + "/some_directory/sub_dir/other_sub_dir/.keep", })) tarDirStat, err := os.Stat(dstDir) Expect(err).ToNot(HaveOccurred()) Expect(os.FileMode(0755)).To(Equal(tarDirStat.Mode().Perm())) content, err := fs.ReadFileString(dstDir + "/app.stdout.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is app stdout") content, err = fs.ReadFileString(dstDir + "/app.stderr.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is app stderr") content, err = fs.ReadFileString(dstDir + "/other_logs/other_app.stdout.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is other app stdout") content, err = fs.ReadFileString(dstDir + "/other_logs/more_logs/more.stdout.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is more stdout")