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  }