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  }