github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/resource/context/internal/resource_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package internal_test 5 6 import ( 7 "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/resource/context/internal" 12 ) 13 14 var _ = gc.Suite(&OpenedResourceSuite{}) 15 16 type OpenedResourceSuite struct { 17 testing.IsolationSuite 18 19 stub *internalStub 20 } 21 22 func (s *OpenedResourceSuite) SetUpTest(c *gc.C) { 23 s.IsolationSuite.SetUpTest(c) 24 25 s.stub = newInternalStub() 26 } 27 28 func (s *OpenedResourceSuite) TestOpenResource(c *gc.C) { 29 info, reader := newResource(c, s.stub.Stub, "spam", "some data") 30 s.stub.ReturnGetResourceInfo = info 31 s.stub.ReturnGetResourceData = reader 32 33 opened, err := internal.OpenResource("spam", s.stub) 34 c.Assert(err, jc.ErrorIsNil) 35 36 s.stub.CheckCallNames(c, "GetResource") 37 c.Check(opened, jc.DeepEquals, &internal.OpenedResource{ 38 Resource: info, 39 ReadCloser: reader, 40 }) 41 } 42 43 func (s *OpenedResourceSuite) TestContent(c *gc.C) { 44 info, reader := newResource(c, s.stub.Stub, "spam", "some data") 45 opened := internal.OpenedResource{ 46 Resource: info, 47 ReadCloser: reader, 48 } 49 50 content := opened.Content() 51 52 s.stub.CheckNoCalls(c) 53 c.Check(content, jc.DeepEquals, internal.Content{ 54 Data: reader, 55 Size: info.Size, 56 Fingerprint: info.Fingerprint, 57 }) 58 } 59 60 func (s *OpenedResourceSuite) TestInfo(c *gc.C) { 61 expected, reader := newResource(c, s.stub.Stub, "spam", "some data") 62 opened := internal.OpenedResource{ 63 Resource: expected, 64 ReadCloser: reader, 65 } 66 67 info := opened.Info() 68 69 s.stub.CheckNoCalls(c) 70 c.Check(info, jc.DeepEquals, expected) 71 }