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 }