github.com/rogpeppe/juju@v0.0.0-20140613142852-6337964b789e/testing/factory/factory_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package factory_test 5 6 import ( 7 jtesting "github.com/juju/testing" 8 jc "github.com/juju/testing/checkers" 9 gc "launchpad.net/gocheck" 10 11 "github.com/juju/juju/mongo" 12 "github.com/juju/juju/state" 13 statetesting "github.com/juju/juju/state/testing" 14 "github.com/juju/juju/testing" 15 "github.com/juju/juju/testing/factory" 16 ) 17 18 type factorySuite struct { 19 testing.BaseSuite 20 jtesting.MgoSuite 21 State *state.State 22 Factory *factory.Factory 23 } 24 25 func (s *factorySuite) SetUpSuite(c *gc.C) { 26 s.BaseSuite.SetUpSuite(c) 27 s.MgoSuite.SetUpSuite(c) 28 } 29 30 func (s *factorySuite) TearDownSuite(c *gc.C) { 31 s.MgoSuite.TearDownSuite(c) 32 s.BaseSuite.TearDownSuite(c) 33 } 34 35 func (s *factorySuite) SetUpTest(c *gc.C) { 36 s.BaseSuite.SetUpTest(c) 37 s.MgoSuite.SetUpTest(c) 38 policy := statetesting.MockPolicy{} 39 40 info := &state.Info{ 41 Info: mongo.Info{ 42 Addrs: []string{jtesting.MgoServer.Addr()}, 43 CACert: testing.CACert, 44 }, 45 } 46 opts := mongo.DialOpts{ 47 Timeout: testing.LongWait, 48 } 49 cfg := testing.EnvironConfig(c) 50 st, err := state.Initialize(info, cfg, opts, &policy) 51 c.Assert(err, gc.IsNil) 52 s.State = st 53 s.Factory = factory.NewFactory(s.State, c) 54 } 55 56 func (s *factorySuite) TearDownTest(c *gc.C) { 57 s.MgoSuite.TearDownTest(c) 58 s.BaseSuite.TearDownTest(c) 59 } 60 61 func (s *factorySuite) TestMakeUserAny(c *gc.C) { 62 user := s.Factory.MakeAnyUser() 63 c.Assert(user.IsDeactivated(), jc.IsFalse) 64 65 saved, err := s.State.User(user.Name()) 66 c.Assert(err, gc.IsNil) 67 c.Assert(saved.Tag(), gc.Equals, user.Tag()) 68 c.Assert(saved.Name(), gc.Equals, user.Name()) 69 c.Assert(saved.DisplayName(), gc.Equals, user.DisplayName()) 70 c.Assert(saved.CreatedBy(), gc.Equals, user.CreatedBy()) 71 c.Assert(saved.DateCreated(), gc.Equals, user.DateCreated()) 72 c.Assert(saved.LastConnection(), gc.Equals, user.LastConnection()) 73 c.Assert(saved.IsDeactivated(), gc.Equals, user.IsDeactivated()) 74 } 75 76 func (s *factorySuite) TestMakeUserParams(c *gc.C) { 77 username := "bob" 78 displayName := "Bob the Builder" 79 creator := "eric" 80 password := "sekrit" 81 user := s.Factory.MakeUser(factory.UserParams{ 82 Username: username, 83 DisplayName: displayName, 84 Creator: creator, 85 Password: password, 86 }) 87 c.Assert(user.IsDeactivated(), jc.IsFalse) 88 c.Assert(user.Name(), gc.Equals, username) 89 c.Assert(user.DisplayName(), gc.Equals, displayName) 90 c.Assert(user.CreatedBy(), gc.Equals, creator) 91 c.Assert(user.PasswordValid(password), jc.IsTrue) 92 93 saved, err := s.State.User(user.Name()) 94 c.Assert(err, gc.IsNil) 95 c.Assert(saved.Tag(), gc.Equals, user.Tag()) 96 c.Assert(saved.Name(), gc.Equals, user.Name()) 97 c.Assert(saved.DisplayName(), gc.Equals, user.DisplayName()) 98 c.Assert(saved.CreatedBy(), gc.Equals, user.CreatedBy()) 99 c.Assert(saved.DateCreated(), gc.Equals, user.DateCreated()) 100 c.Assert(saved.LastConnection(), gc.Equals, user.LastConnection()) 101 c.Assert(saved.IsDeactivated(), gc.Equals, user.IsDeactivated()) 102 }