github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/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/state"
    12  	"github.com/juju/juju/testing"
    13  	"github.com/juju/juju/testing/factory"
    14  )
    15  
    16  var _ = gc.Suite(&StateSuite{})
    17  
    18  // StateSuite provides setup and teardown for tests that require a
    19  // state.State.
    20  type StateSuite struct {
    21  	jujutesting.MgoSuite
    22  	testing.BaseSuite
    23  	Policy  state.Policy
    24  	State   *state.State
    25  	Owner   names.UserTag
    26  	Factory *factory.Factory
    27  }
    28  
    29  func (s *StateSuite) SetUpSuite(c *gc.C) {
    30  	s.MgoSuite.SetUpSuite(c)
    31  	s.BaseSuite.SetUpSuite(c)
    32  }
    33  
    34  func (s *StateSuite) TearDownSuite(c *gc.C) {
    35  	s.BaseSuite.TearDownSuite(c)
    36  	s.MgoSuite.TearDownSuite(c)
    37  }
    38  
    39  func (s *StateSuite) SetUpTest(c *gc.C) {
    40  	s.MgoSuite.SetUpTest(c)
    41  	s.BaseSuite.SetUpTest(c)
    42  
    43  	s.Owner = names.NewLocalUserTag("test-admin")
    44  	s.State = Initialize(c, s.Owner, nil, s.Policy)
    45  	s.AddCleanup(func(*gc.C) { s.State.Close() })
    46  	s.Factory = factory.NewFactory(s.State)
    47  }
    48  
    49  func (s *StateSuite) TearDownTest(c *gc.C) {
    50  	s.BaseSuite.TearDownTest(c)
    51  	s.MgoSuite.TearDownTest(c)
    52  }