func init() { Describe("Testing with Ginkgo", func() { It("get run with valid args", func() { requestedBlob := "0ca907f2-dde8-4413-a304-9076c9d0978b" targetFilePath := filepath.Join(os.TempDir(), "testRunGetCommand.txt") defer os.RemoveAll(targetFilePath) handler := func(w http.ResponseWriter, r *http.Request) { req := testcmd.NewHTTPRequest(r) username, password, err := req.ExtractBasicAuth() Expect(err).ToNot(HaveOccurred()) Expect(req.URL.Path).To(Equal("/0d/" + requestedBlob)) Expect(req.Method).To(Equal("GET")) Expect(username).To(Equal("some user")) Expect(password).To(Equal("some pwd")) w.Write([]byte("this is your blob")) } ts := httptest.NewServer(http.HandlerFunc(handler)) defer ts.Close() config := davconf.Config{ User: "******", Password: "******", Endpoint: ts.URL, } err := runGet(config, []string{requestedBlob, targetFilePath}) Expect(err).ToNot(HaveOccurred()) Expect(getFileContent(targetFilePath)).To(Equal("this is your blob")) }) It("get run with incorrect arg count", func() { err := runGet(davconf.Config{}, []string{}) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("Incorrect usage")) }) }) }
} var _ = Describe("PutCmd", func() { Describe("Run", func() { It("uploads the blob with valid args", func() { pwd, err := os.Getwd() Expect(err).ToNot(HaveOccurred()) sourceFilePath := filepath.Join(pwd, "../test_assets/cat.jpg") targetBlob := "some-other-awesome-guid" serverWasHit := false handler := func(w http.ResponseWriter, r *http.Request) { defer GinkgoRecover() serverWasHit = true req := testcmd.NewHTTPRequest(r) username, password, err := req.ExtractBasicAuth() Expect(err).ToNot(HaveOccurred()) Expect(req.URL.Path).To(Equal("/d1/" + targetBlob)) Expect(req.Method).To(Equal("PUT")) Expect(req.ContentLength).To(Equal(int64(1718186))) Expect(username).To(Equal("some user")) Expect(password).To(Equal("some pwd")) expectedBytes := fileBytes(sourceFilePath) actualBytes, _ := ioutil.ReadAll(r.Body) Expect(expectedBytes).To(Equal(actualBytes)) w.WriteHeader(201) }