BeforeEach(func() { tmpDir := os.TempDir() var err error tmpFile, err = ioutil.TempFile(tmpDir, "tmp_file") Expect(err).NotTo(HaveOccurred()) Expect(ioutil.WriteFile(tmpFile.Name(), []byte("some contents"), 0600)).To(Succeed()) }) AfterEach(func() { Expect(os.Remove(tmpFile.Name())).To(Succeed()) }) It("uploads the file to the bucket", func() { Expect(dropletRunner.UploadBits("droplet-name", tmpFile.Name())).To(Succeed()) Expect(fakeBlobStore.UploadCallCount()).To(Equal(1)) path, contents := fakeBlobStore.UploadArgsForCall(0) Expect(path).To(Equal("droplet-name/bits.zip")) Expect(ioutil.ReadAll(contents)).To(Equal([]byte("some contents"))) }) It("returns an error when we fail to open the droplet bits", func() { err := dropletRunner.UploadBits("droplet-name", "some non-existent file") Expect(err).To(MatchError("open some non-existent file: no such file or directory")) }) It("returns an error when the upload fails", func() { fakeBlobStore.UploadReturns(errors.New("some error"))
tmpDir := os.TempDir() tmpFile, err = ioutil.TempFile(tmpDir, "tmp_file") Expect(err).NotTo(HaveOccurred()) err = ioutil.WriteFile(tmpFile.Name(), []byte(`{"Value":"test value"}`), 0700) Expect(err).NotTo(HaveOccurred()) fakeTargetVerifier.VerifyBlobTargetReturns(true, nil) }) AfterEach(func() { Expect(os.Remove(tmpFile.Name())).To(Succeed()) }) It("uploads the file to the bucket", func() { err = dropletRunner.UploadBits("droplet-name", tmpFile.Name()) Expect(err).NotTo(HaveOccurred()) Expect(fakeTargetVerifier.VerifyBlobTargetCallCount()).To(Equal(1)) Expect(fakeBlobBucket.PutReaderCallCount()).To(Equal(1)) path, reader, length, contType, perm, options := fakeBlobBucket.PutReaderArgsForCall(0) Expect(path).To(Equal("droplet-name/bits.tgz")) Expect(reader).ToNot(BeNil()) Expect(length).ToNot(BeZero()) Expect(contType).To(Equal(blob_store.DropletContentType)) Expect(perm).To(Equal(blob_store.DefaultPrivilege)) Expect(options).To(BeZero()) })