tempDownloadFile, err := ioutil.TempFile("", "temp-download-file") Expect(err).ToNot(HaveOccurred()) fs.ReturnTempFile = tempDownloadFile tempDownloadFilePath = tempDownloadFile.Name() sha1Calculator.SetCalculateBehavior(map[string]fakebicrypto.CalculateInput{ tempDownloadFilePath: {Sha1: "fake-sha1"}, }) }) AfterEach(func() { os.RemoveAll(tempDownloadFilePath) }) Context("when downloading succeds", func() { BeforeEach(func() { httpClient.SetGetBehavior("fake-body", 200, nil) httpClient.SetGetBehavior("fake-body", 200, nil) httpClient.SetGetBehavior("fake-body", 200, nil) }) It("downloads tarball from given URL and returns saved cache tarball path", func() { path, err := provider.Get(source, fakeStage) Expect(err).ToNot(HaveOccurred()) Expect(path).To(Equal("/fake-base-path/9db1fb7c47637e8709e944a232e1aa98ce6fec26-fake-sha1")) Expect(httpClient.GetInputs).To(HaveLen(1)) Expect(httpClient.GetInputs[0].Endpoint).To(Equal("http://fake-url")) }) It("logs downloading stage", func() { _, err := provider.Get(source, fakeStage)