github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/state/testing/suite.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package testing
     5  
     6  import (
     7  	"github.com/juju/names"
     8  	jujutesting "github.com/juju/testing"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/environs/config"
    12  	"github.com/juju/juju/state"
    13  	"github.com/juju/juju/testing"
    14  	"github.com/juju/juju/testing/factory"
    15  )
    16  
    17  var _ = gc.Suite(&StateSuite{})
    18  
    19  // StateSuite provides setup and teardown for tests that require a
    20  // state.State.
    21  type StateSuite struct {
    22  	jujutesting.MgoSuite
    23  	testing.BaseSuite
    24  	Policy        state.Policy
    25  	State         *state.State
    26  	Owner         names.UserTag
    27  	Factory       *factory.Factory
    28  	InitialConfig *config.Config
    29  }
    30  
    31  func (s *StateSuite) SetUpSuite(c *gc.C) {
    32  	s.MgoSuite.SetUpSuite(c)
    33  	s.BaseSuite.SetUpSuite(c)
    34  }
    35  
    36  func (s *StateSuite) TearDownSuite(c *gc.C) {
    37  	s.BaseSuite.TearDownSuite(c)
    38  	s.MgoSuite.TearDownSuite(c)
    39  }
    40  
    41  func (s *StateSuite) SetUpTest(c *gc.C) {
    42  	s.MgoSuite.SetUpTest(c)
    43  	s.BaseSuite.SetUpTest(c)
    44  
    45  	s.Owner = names.NewLocalUserTag("test-admin")
    46  	s.State = Initialize(c, s.Owner, s.InitialConfig, s.Policy)
    47  	s.AddCleanup(func(*gc.C) { s.State.Close() })
    48  	s.Factory = factory.NewFactory(s.State)
    49  }
    50  
    51  func (s *StateSuite) TearDownTest(c *gc.C) {
    52  	s.BaseSuite.TearDownTest(c)
    53  	s.MgoSuite.TearDownTest(c)
    54  }