add test cases
diff --git a/api_test.go b/api_test.go index 0651ab5..38cef04 100644 --- a/api_test.go +++ b/api_test.go
@@ -69,12 +69,14 @@ Expect(err).Should(Succeed()) defer res.Body.Close() Expect(res.StatusCode).Should(Equal(http.StatusOK)) + // parse response var depRes ApiDeploymentResponse body, err := ioutil.ReadAll(res.Body) Expect(err).Should(Succeed()) err = json.Unmarshal(body, &depRes) Expect(err).Should(Succeed()) + // verify response Expect(len(depRes.ApiDeploymentsResponse)).To(Equal(0)) Expect(depRes.Kind).Should(Equal(kindCollection)) @@ -96,12 +98,14 @@ Expect(err).Should(Succeed()) defer res.Body.Close() Expect(res.StatusCode).Should(Equal(http.StatusOK)) + // parse response var depRes ApiDeploymentResponse body, err := ioutil.ReadAll(res.Body) Expect(err).Should(Succeed()) err = json.Unmarshal(body, &depRes) Expect(err).Should(Succeed()) + // verify response Expect(depRes.Kind).Should(Equal(kindCollection)) Expect(depRes.Self).Should(Equal(uri.String())) @@ -109,6 +113,73 @@ }) + It("should get 304 for no change", func() { + + // setup http client + uri, err := url.Parse(testUrl) + Expect(err).Should(Succeed()) + uri.Path = deploymentsEndpoint + strconv.Itoa(testCount) + + // set test data + setTestDeployments(dummyDbMan, uri.String()) + + // http get + res, err := http.Get(uri.String()) + Expect(err).Should(Succeed()) + defer res.Body.Close() + Expect(res.StatusCode).Should(Equal(http.StatusOK)) + etag := res.Header.Get("etag") + Expect(etag).ShouldNot(BeEmpty()) + + // send second request + req, err := http.NewRequest("GET", uri.String(), nil) + req.Header.Add("Content-Type", "application/json") + req.Header.Add("If-None-Match", etag) + + // get response + res, err = http.DefaultClient.Do(req) + Expect(err).ShouldNot(HaveOccurred()) + defer res.Body.Close() + Expect(res.StatusCode).To(Equal(http.StatusNotModified)) + }) + + XIt("should get empty set after blocking if no deployments", func() { + + start := time.Now() + + // setup http client + uri, err := url.Parse(testUrl) + Expect(err).Should(Succeed()) + uri.Path = deploymentsEndpoint + strconv.Itoa(testCount) + query := uri.Query() + query.Add("block", "1") + uri.RawQuery = query.Encode() + + // http get + res, err := http.Get(uri.String()) + Expect(err).Should(Succeed()) + defer res.Body.Close() + Expect(res.StatusCode).Should(Equal(http.StatusOK)) + + //verify blocking time + blockingTime := time.Since(start) + log.Warnf("time used: %v", blockingTime.Seconds()) + Expect(blockingTime.Seconds() > 0.9).Should(BeTrue()) + + // parse response + var depRes ApiDeploymentResponse + body, err := ioutil.ReadAll(res.Body) + Expect(err).Should(Succeed()) + err = json.Unmarshal(body, &depRes) + Expect(err).Should(Succeed()) + + // verify response + Expect(len(depRes.ApiDeploymentsResponse)).To(Equal(0)) + Expect(depRes.Kind).Should(Equal(kindCollection)) + Expect(depRes.Self).Should(Equal(testUrl + deploymentsEndpoint + strconv.Itoa(testCount))) + + }, 2) + It("should get iso8601 time", func() { testTimes := []string{"", "2017-04-05 04:47:36.462 +0000 UTC", "2017-04-05 04:47:36.462-07:00", "2017-04-05T04:47:36.462Z", "2017-04-05 23:23:38.162+00:00", "2017-06-22 16:41:02.334"} isoTime := []string{"", "2017-04-05T04:47:36.462Z", "2017-04-05T04:47:36.462-07:00", "2017-04-05T04:47:36.462Z", "2017-04-05T23:23:38.162Z", "2017-06-22T16:41:02.334Z"}