github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/maas/credentials_test.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package maas_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	"github.com/juju/testing"
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	"github.com/juju/juju/cloud"
    13  	"github.com/juju/juju/environs"
    14  	envtesting "github.com/juju/juju/environs/testing"
    15  )
    16  
    17  type credentialsSuite struct {
    18  	testing.FakeHomeSuite
    19  	provider environs.EnvironProvider
    20  }
    21  
    22  var _ = gc.Suite(&credentialsSuite{})
    23  
    24  func (s *credentialsSuite) SetUpTest(c *gc.C) {
    25  	s.FakeHomeSuite.SetUpTest(c)
    26  
    27  	var err error
    28  	s.provider, err = environs.Provider("maas")
    29  	c.Assert(err, jc.ErrorIsNil)
    30  }
    31  
    32  func (s *credentialsSuite) TestCredentialSchemas(c *gc.C) {
    33  	envtesting.AssertProviderAuthTypes(c, s.provider, "oauth1")
    34  }
    35  
    36  func (s *credentialsSuite) TestOAuth1CredentialsValid(c *gc.C) {
    37  	envtesting.AssertProviderCredentialsValid(c, s.provider, "oauth1", map[string]string{
    38  		"maas-oauth": "123:456:789",
    39  	})
    40  }
    41  
    42  func (s *credentialsSuite) TestOAuth1HiddenAttributes(c *gc.C) {
    43  	envtesting.AssertProviderCredentialsAttributesHidden(c, s.provider, "oauth1", "maas-oauth")
    44  }
    45  
    46  func (s *credentialsSuite) TestDetectCredentials(c *gc.C) {
    47  	s.Home.AddFiles(c, testing.TestFile{
    48  		Name: ".maasrc",
    49  		Data: `{"Server": "http://10.0.0.1/MAAS", "OAuth": "key"}`,
    50  	})
    51  	creds, err := s.provider.DetectCredentials()
    52  	c.Assert(err, jc.ErrorIsNil)
    53  	c.Assert(creds.DefaultRegion, gc.Equals, "")
    54  	expected := cloud.NewCredential(
    55  		cloud.OAuth1AuthType, map[string]string{
    56  			"maas-oauth": "key",
    57  		},
    58  	)
    59  	expected.Label = "MAAS credential for http://10.0.0.1/MAAS"
    60  	c.Assert(creds.AuthCredentials["default"], jc.DeepEquals, expected)
    61  }
    62  
    63  func (s *credentialsSuite) TestDetectCredentialsNoServer(c *gc.C) {
    64  	s.Home.AddFiles(c, testing.TestFile{
    65  		Name: ".maasrc",
    66  		Data: `{"OAuth": "key"}`,
    67  	})
    68  	creds, err := s.provider.DetectCredentials()
    69  	c.Assert(err, jc.ErrorIsNil)
    70  	c.Assert(creds.DefaultRegion, gc.Equals, "")
    71  	expected := cloud.NewCredential(
    72  		cloud.OAuth1AuthType, map[string]string{
    73  			"maas-oauth": "key",
    74  		},
    75  	)
    76  	expected.Label = "MAAS credential for unspecified server"
    77  	c.Assert(creds.AuthCredentials["default"], jc.DeepEquals, expected)
    78  }
    79  
    80  func (s *credentialsSuite) TestDetectCredentialsNoFile(c *gc.C) {
    81  	_, err := s.provider.DetectCredentials()
    82  	c.Assert(err, jc.Satisfies, errors.IsNotFound)
    83  }