github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/authentication/authenticator_test.go (about) 1 // Copyright 2014 Canonical Ltd. All rights reserved. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package authentication_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/apiserver/authentication" 11 "github.com/juju/juju/juju/testing" 12 "github.com/juju/juju/testing/factory" 13 ) 14 15 type AgentAuthenticatorSuite struct { 16 testing.JujuConnSuite 17 } 18 19 func (s *AgentAuthenticatorSuite) TestFindEntityAuthenticatorFails(c *gc.C) { 20 // add relation 21 wordpress := s.AddTestingService(c, "wordpress", s.AddTestingCharm(c, "wordpress")) 22 wordpressEP, err := wordpress.Endpoint("db") 23 c.Assert(err, jc.ErrorIsNil) 24 mysql := s.AddTestingService(c, "mysql", s.AddTestingCharm(c, "mysql")) 25 mysqlEP, err := mysql.Endpoint("server") 26 c.Assert(err, jc.ErrorIsNil) 27 relation, err := s.State.AddRelation(wordpressEP, mysqlEP) 28 c.Assert(err, jc.ErrorIsNil) 29 30 _, err = authentication.FindEntityAuthenticator(relation) 31 c.Assert(err, gc.ErrorMatches, "invalid request") 32 } 33 34 func (s *AgentAuthenticatorSuite) TestFindEntityAuthenticator(c *gc.C) { 35 fact := factory.NewFactory(s.State) 36 user := fact.MakeUser(c, &factory.UserParams{Password: "password"}) 37 authenticator, err := authentication.FindEntityAuthenticator(user) 38 c.Assert(err, jc.ErrorIsNil) 39 c.Assert(authenticator, gc.NotNil) 40 41 err = authenticator.Authenticate(user, "password", "nonce") 42 c.Assert(err, jc.ErrorIsNil) 43 }