github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/imagemetadata/package_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package imagemetadata_test
     5  
     6  import (
     7  	stdtesting "testing"
     8  
     9  	"github.com/juju/names"
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	"github.com/juju/juju/apiserver/common"
    14  	"github.com/juju/juju/apiserver/imagemetadata"
    15  	"github.com/juju/juju/apiserver/testing"
    16  	"github.com/juju/juju/state/cloudimagemetadata"
    17  	coretesting "github.com/juju/juju/testing"
    18  )
    19  
    20  func TestAll(t *stdtesting.T) {
    21  	gc.TestingT(t)
    22  }
    23  
    24  type baseImageMetadataSuite struct {
    25  	coretesting.BaseSuite
    26  
    27  	resources  *common.Resources
    28  	authorizer testing.FakeAuthorizer
    29  
    30  	api   *imagemetadata.API
    31  	state *mockState
    32  
    33  	calls []string
    34  }
    35  
    36  func (s *baseImageMetadataSuite) SetUpTest(c *gc.C) {
    37  	s.BaseSuite.SetUpTest(c)
    38  	s.resources = common.NewResources()
    39  	s.authorizer = testing.FakeAuthorizer{names.NewUserTag("testuser"), true}
    40  
    41  	s.calls = []string{}
    42  	s.state = s.constructState(c)
    43  
    44  	var err error
    45  	s.api, err = imagemetadata.CreateAPI(s.state, s.resources, s.authorizer)
    46  	c.Assert(err, jc.ErrorIsNil)
    47  }
    48  
    49  func (s *baseImageMetadataSuite) assertCalls(c *gc.C, expectedCalls []string) {
    50  	c.Assert(s.calls, jc.SameContents, expectedCalls)
    51  }
    52  
    53  const (
    54  	findMetadata = "findMetadata"
    55  	saveMetadata = "saveMetadata"
    56  )
    57  
    58  func (s *baseImageMetadataSuite) constructState(c *gc.C) *mockState {
    59  	return &mockState{
    60  		findMetadata: func(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error) {
    61  			s.calls = append(s.calls, findMetadata)
    62  			return nil, nil
    63  		},
    64  		saveMetadata: func(m cloudimagemetadata.Metadata) error {
    65  			s.calls = append(s.calls, saveMetadata)
    66  			return nil
    67  		},
    68  	}
    69  }
    70  
    71  type mockState struct {
    72  	findMetadata func(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error)
    73  	saveMetadata func(m cloudimagemetadata.Metadata) error
    74  }
    75  
    76  func (st *mockState) FindMetadata(f cloudimagemetadata.MetadataFilter) (map[cloudimagemetadata.SourceType][]cloudimagemetadata.Metadata, error) {
    77  	return st.findMetadata(f)
    78  }
    79  
    80  func (st *mockState) SaveMetadata(m cloudimagemetadata.Metadata) error {
    81  	return st.saveMetadata(m)
    82  }