var ( extractor Extractor fs *fakesys.FakeFileSystem reader *fakebistemcell.FakeStemcellReader stemcellTarballPath string stemcellExtractionDir string expectedExtractedStemcell ExtractedStemcell ) BeforeEach(func() { fs = fakesys.NewFakeFileSystem() reader = fakebistemcell.NewFakeReader() stemcellTarballPath = "/stemcell/tarball/path" stemcellExtractionDir = "/path/to/dest" fs.TempDirDir = stemcellExtractionDir extractor = NewExtractor(reader, fs) expectedExtractedStemcell = NewExtractedStemcell( Manifest{ Name: "fake-stemcell-name", ImagePath: "fake-image-path", CloudProperties: biproperty.Map{ "fake-prop-key": "fake-prop-value", }, }, stemcellExtractionDir, fs, ) reader.SetReadBehavior(stemcellTarballPath, stemcellExtractionDir, expectedExtractedStemcell, nil)
fakeERBRenderer.SetRenderBehavior( filepath.Join(srcPath, "templates/director.yml.erb"), filepath.Join(dstPath, "config/director.yml"), context, nil, ) fakeERBRenderer.SetRenderBehavior( filepath.Join(srcPath, "monit"), filepath.Join(dstPath, "monit"), context, nil, ) fs.TempDirDir = dstPath }) AfterEach(func() { err := fs.RemoveAll(dstPath) Expect(err).ToNot(HaveOccurred()) }) Describe("Render", func() { It("renders job templates", func() { renderedjob, err := jobRenderer.Render(job, jobProperties, globalProperties, "fake-deployment-name") Expect(err).ToNot(HaveOccurred()) Expect(fakeERBRenderer.RenderInputs).To(Equal([]fakebirender.RenderInput{ { SrcPath: filepath.Join(srcPath, "templates/director.yml.erb"),
Context("with a fake fs & compressor", func() { var ( fakeFS *fakeboshsys.FakeFileSystem fakeCompressor *fakeboshcmd.FakeCompressor ) BeforeEach(func() { fakeFS = fakeboshsys.NewFakeFileSystem() fakeCompressor = fakeboshcmd.NewFakeCompressor() renderedJobListCompressor = NewRenderedJobListCompressor(fakeFS, fakeCompressor, fakeSHA1Calculator, logger) }) It("calculates the fingerprint of the rendered", func() { fakeFS.TempDirDir = "fake-rendered-job-list-path" fakeSHA1Calculator.SetCalculateBehavior(map[string]fakebicrypto.CalculateInput{ "fake-rendered-job-list-path": fakebicrypto.CalculateInput{Sha1: "fake-sha1"}, }) archive, err := renderedJobListCompressor.Compress(renderedJobList) Expect(err).ToNot(HaveOccurred()) Expect(archive.Fingerprint()).To(Equal("fake-sha1")) }) It("calculates the SHA1 of the archive", func() { fakeCompressor.CompressFilesInDirTarballPath = "fake-archive-path" fakeSHA1Calculator.SetCalculateBehavior(map[string]fakebicrypto.CalculateInput{
diskUtil = NewDiskUtil("fake-disk-path", mounter, fs, logger) }) Describe("GetFileContents", func() { Context("when disk path does not exist", func() { It("returns an error if diskpath does not exist", func() { _, err := diskUtil.GetFilesContents([]string{"fake-file-path-1"}) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("disk path 'fake-disk-path' does not exist")) }) }) Context("when disk path does not exist", func() { BeforeEach(func() { fs.MkdirAll("fake-disk-path", 0700) fs.TempDirDir = "fake-tempdir" fs.WriteFileString("fake-tempdir/fake-file-path-1", "fake-contents-1") fs.WriteFileString("fake-tempdir/fake-file-path-2", "fake-contents-2") }) It("mounts disk path to temporary directory", func() { _, err := diskUtil.GetFilesContents([]string{"fake-file-path-1"}) Expect(err).ToNot(HaveOccurred()) Expect(mounter.MountPartitionPaths).To(ContainElement("fake-disk-path")) Expect(mounter.MountMountPoints).To(ContainElement("fake-tempdir")) }) It("returns contents of files on a disk", func() { contents, err := diskUtil.GetFilesContents([]string{"fake-file-path-1", "fake-file-path-2"}) Expect(err).ToNot(HaveOccurred())
) BeforeEach(func() { fs = fakesys.NewFakeFileSystem() reader = fakebistemcell.NewFakeReader() logger := boshlog.NewLogger(boshlog.LevelNone) fakeUUIDGenerator = &fakeuuid.FakeGenerator{} deploymentStateService := biconfig.NewFileSystemDeploymentStateService(fs, fakeUUIDGenerator, logger, "/fake/path") fakeUUIDGenerator.GeneratedUUID = "fake-stemcell-id-1" stemcellRepo = biconfig.NewStemcellRepo(deploymentStateService, fakeUUIDGenerator) fakeStage = fakebiui.NewFakeStage() fakeCloud = fakebicloud.NewFakeCloud() manager = NewManager(stemcellRepo, fakeCloud) stemcellTarballPath = "/stemcell/tarball/path" tempExtractionDir = "/path/to/dest" fs.TempDirDir = tempExtractionDir expectedExtractedStemcell = NewExtractedStemcell( Manifest{ Name: "fake-stemcell-name", Version: "fake-stemcell-version", ImagePath: "fake-image-path", CloudProperties: biproperty.Map{ "fake-prop-key": "fake-prop-value", }, }, tempExtractionDir, fs, ) reader.SetReadBehavior(stemcellTarballPath, tempExtractionDir, expectedExtractedStemcell, nil) })