github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/state/user_internal_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package state 5 6 import ( 7 "strings" 8 9 gc "gopkg.in/check.v1" 10 "gopkg.in/juju/names.v2" 11 12 "github.com/juju/juju/permission" 13 "github.com/juju/juju/testing" 14 ) 15 16 type internalUserSuite struct { 17 internalStateSuite 18 } 19 20 var _ = gc.Suite(&internalUserSuite{}) 21 22 func (s *internalUserSuite) TestCreateInitialUserOps(c *gc.C) { 23 tag := names.NewUserTag("AdMiN") 24 ops := createInitialUserOps(s.state.ControllerUUID(), tag, "abc", "salt", testing.ZeroTime()) 25 c.Assert(ops, gc.HasLen, 3) 26 op := ops[0] 27 c.Assert(op.Id, gc.Equals, "admin") 28 29 doc := op.Insert.(*userDoc) 30 c.Assert(doc.DocID, gc.Equals, "admin") 31 c.Assert(doc.Name, gc.Equals, "AdMiN") 32 c.Assert(doc.PasswordSalt, gc.Equals, "salt") 33 34 // controller user permissions 35 op = ops[1] 36 permdoc := op.Insert.(*permissionDoc) 37 c.Assert(permdoc.Access, gc.Equals, string(permission.SuperuserAccess)) 38 c.Assert(permdoc.ID, gc.Equals, permissionID(controllerKey(s.state.ControllerUUID()), userGlobalKey(strings.ToLower(tag.Canonical())))) 39 c.Assert(permdoc.SubjectGlobalKey, gc.Equals, userGlobalKey(strings.ToLower(tag.Canonical()))) 40 c.Assert(permdoc.ObjectGlobalKey, gc.Equals, controllerKey(s.state.ControllerUUID())) 41 42 // controller user 43 op = ops[2] 44 cudoc := op.Insert.(*userAccessDoc) 45 c.Assert(cudoc.ID, gc.Equals, "admin@local") 46 c.Assert(cudoc.ObjectUUID, gc.Equals, s.state.ControllerUUID()) 47 c.Assert(cudoc.UserName, gc.Equals, "AdMiN@local") 48 c.Assert(cudoc.DisplayName, gc.Equals, "AdMiN") 49 c.Assert(cudoc.CreatedBy, gc.Equals, "AdMiN@local") 50 } 51 52 func (s *internalUserSuite) TestCaseNameVsId(c *gc.C) { 53 user, err := s.state.AddUser( 54 "boB", "ignored", "ignored", "ignored") 55 c.Assert(err, gc.IsNil) 56 c.Assert(user.Name(), gc.Equals, "boB") 57 c.Assert(user.doc.DocID, gc.Equals, "bob") 58 }