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  }