github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/api/backups/download_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package backups_test 5 6 import ( 7 "io/ioutil" 8 "net/http" 9 10 "github.com/juju/errors" 11 jc "github.com/juju/testing/checkers" 12 gc "gopkg.in/check.v1" 13 14 apiserverhttp "github.com/juju/juju/apiserver/http" 15 "github.com/juju/juju/apiserver/params" 16 ) 17 18 type downloadSuite struct { 19 httpSuite 20 } 21 22 var _ = gc.Suite(&downloadSuite{}) 23 24 func (s *downloadSuite) setSuccess(c *gc.C, data string) { 25 body := []byte(data) 26 s.setResponse(c, http.StatusOK, body, apiserverhttp.CTypeRaw) 27 } 28 29 func (s *downloadSuite) TestSuccessfulRequest(c *gc.C) { 30 s.setSuccess(c, "<compressed archive data>") 31 32 resultArchive, err := s.client.Download("spam") 33 c.Assert(err, jc.ErrorIsNil) 34 35 resultData, err := ioutil.ReadAll(resultArchive) 36 c.Assert(err, jc.ErrorIsNil) 37 c.Check(string(resultData), gc.Equals, "<compressed archive data>") 38 } 39 40 func (s *downloadSuite) TestFailedRequest(c *gc.C) { 41 s.setFailure(c, "something went wrong!", http.StatusInternalServerError) 42 43 _, err := s.client.Download("spam") 44 45 c.Check(errors.Cause(err), gc.FitsTypeOf, ¶ms.Error{}) 46 c.Check(err, gc.ErrorMatches, "something went wrong!") 47 } 48 49 func (s *downloadSuite) TestErrorRequest(c *gc.C) { 50 s.setError(c, "something went wrong!", -1) 51 52 _, err := s.client.Download("spam") 53 54 c.Check(errors.Cause(err), gc.FitsTypeOf, ¶ms.Error{}) 55 c.Check(err, gc.ErrorMatches, "something went wrong!") 56 }