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 }