github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/environs/jujutest/metadata_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package jujutest 5 6 import ( 7 "io/ioutil" 8 "net/http" 9 "net/url" 10 11 gc "launchpad.net/gocheck" 12 ) 13 14 type metadataSuite struct{} 15 16 var _ = gc.Suite(&metadataSuite{}) 17 18 func (s *metadataSuite) TestCannedRoundTripper(c *gc.C) { 19 aContent := "a-content" 20 vrt := NewCannedRoundTripper(map[string]string{ 21 "a": aContent, 22 "b": "b-content", 23 }, nil) 24 c.Assert(vrt, gc.NotNil) 25 req := &http.Request{URL: &url.URL{Path: "a"}} 26 resp, err := vrt.RoundTrip(req) 27 c.Assert(err, gc.IsNil) 28 c.Assert(resp, gc.NotNil) 29 content, err := ioutil.ReadAll(resp.Body) 30 c.Assert(string(content), gc.Equals, aContent) 31 c.Assert(resp.ContentLength, gc.Equals, int64(len(aContent))) 32 c.Assert(resp.StatusCode, gc.Equals, http.StatusOK) 33 c.Assert(resp.Status, gc.Equals, "200 OK") 34 } 35 36 func (s *metadataSuite) TestCannedRoundTripperMissing(c *gc.C) { 37 vrt := NewCannedRoundTripper(map[string]string{"a": "a-content"}, nil) 38 c.Assert(vrt, gc.NotNil) 39 req := &http.Request{URL: &url.URL{Path: "no-such-file"}} 40 resp, err := vrt.RoundTrip(req) 41 c.Assert(err, gc.IsNil) 42 c.Assert(resp, gc.NotNil) 43 content, err := ioutil.ReadAll(resp.Body) 44 c.Assert(string(content), gc.Equals, "") 45 c.Assert(resp.ContentLength, gc.Equals, int64(0)) 46 c.Assert(resp.StatusCode, gc.Equals, http.StatusNotFound) 47 c.Assert(resp.Status, gc.Equals, "404 Not Found") 48 }