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

     1  // Copyright 2017 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package oracle_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	gitjujutesting "github.com/juju/testing"
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "gopkg.in/check.v1"
    11  
    12  	jujucloud "github.com/juju/juju/cloud"
    13  	"github.com/juju/juju/environs"
    14  	"github.com/juju/juju/environs/context"
    15  	"github.com/juju/juju/provider/oracle"
    16  	"github.com/juju/juju/testing"
    17  )
    18  
    19  type environProviderSuite struct {
    20  	gitjujutesting.IsolationSuite
    21  }
    22  
    23  var _ = gc.Suite(&environProviderSuite{})
    24  
    25  func (e *environProviderSuite) NewProvider(c *gc.C) environs.EnvironProvider {
    26  	provider, err := environs.Provider("oracle")
    27  	c.Assert(err, gc.IsNil)
    28  	c.Assert(provider, gc.NotNil)
    29  	return provider
    30  }
    31  
    32  func (e *environProviderSuite) TestCloudSchma(c *gc.C) {
    33  	provider := e.NewProvider(c)
    34  	schema := provider.CloudSchema()
    35  	c.Assert(schema, gc.IsNil)
    36  }
    37  
    38  func (e *environProviderSuite) TestPing(c *gc.C) {
    39  	provider := e.NewProvider(c)
    40  	err := provider.Ping(context.NewCloudCallContext(), "")
    41  	c.Assert(err, gc.IsNil)
    42  }
    43  
    44  func (e *environProviderSuite) TestPrepareConfigWithErrors(c *gc.C) {
    45  	provider := e.NewProvider(c)
    46  	_, err := provider.PrepareConfig(environs.PrepareConfigParams{})
    47  	c.Assert(err, gc.NotNil)
    48  
    49  	_, err = provider.PrepareConfig(environs.PrepareConfigParams{
    50  		Config: testing.ModelConfig(c),
    51  	})
    52  	c.Assert(err, gc.NotNil)
    53  }
    54  
    55  func (e *environProviderSuite) TestPrepareConfig(c *gc.C) {
    56  	provider := e.NewProvider(c)
    57  	credentials := jujucloud.NewCredential(
    58  		jujucloud.UserPassAuthType,
    59  		map[string]string{
    60  			"identity-domain": "bretdd",
    61  		},
    62  	)
    63  	_, err := provider.PrepareConfig(environs.PrepareConfigParams{
    64  		Cloud: environs.CloudSpec{
    65  			Type:       "oracle",
    66  			Name:       "oracle",
    67  			Credential: &credentials,
    68  		},
    69  		Config: testing.ModelConfig(c),
    70  	})
    71  	c.Assert(err, gc.IsNil)
    72  }
    73  
    74  func (e *environProviderSuite) TestOpen(c *gc.C) {
    75  	provider := e.NewProvider(c)
    76  	credentials := jujucloud.NewCredential(
    77  		jujucloud.UserPassAuthType,
    78  		map[string]string{
    79  			"identity-domain": "bretdd",
    80  			"username":        "some-friendly-username",
    81  			"password":        "some-friendly-password",
    82  		},
    83  	)
    84  	_, err := environs.Open(provider, environs.OpenParams{
    85  		Cloud: environs.CloudSpec{
    86  			Type:       "oracle",
    87  			Name:       "oracle",
    88  			Credential: &credentials,
    89  			Endpoint:   "https://127.0.0.1/",
    90  		},
    91  		Config: testing.ModelConfig(c),
    92  	})
    93  	c.Assert(err, gc.NotNil)
    94  }
    95  
    96  func (e *environProviderSuite) TestValidateWithErrors(c *gc.C) {
    97  	provider := e.NewProvider(c)
    98  	_, err := provider.Validate(
    99  		testing.ModelConfig(c),
   100  		testing.ModelConfig(c),
   101  	)
   102  	c.Assert(err, gc.NotNil)
   103  }
   104  
   105  func (e *environProviderSuite) TestValidate(c *gc.C) {
   106  	provider := e.NewProvider(c)
   107  	_, err := provider.Validate(testing.ModelConfig(c), nil)
   108  	c.Assert(err, gc.IsNil)
   109  }
   110  
   111  func (e *environProviderSuite) TestCredentialSchema(c *gc.C) {
   112  	provider := e.NewProvider(c)
   113  	credentials := provider.CredentialSchemas()
   114  	c.Assert(credentials,
   115  		jc.DeepEquals,
   116  		oracle.OracleCredentials,
   117  	)
   118  }
   119  
   120  func (e *environProviderSuite) TestDetectCredentials(c *gc.C) {
   121  	provider := e.NewProvider(c)
   122  	_, err := provider.DetectCredentials()
   123  	c.Assert(errors.IsNotFound(err), jc.IsTrue)
   124  }
   125  
   126  func (e *environProviderSuite) TestFinalizeCredential(c *gc.C) {
   127  	provider := e.NewProvider(c)
   128  	cloudcred := jujucloud.NewCredential(
   129  		jujucloud.UserPassAuthType,
   130  		map[string]string{
   131  			"identity-domain": "bretdd",
   132  			"username":        "some-friendly-username",
   133  			"password":        "some-friendly-password",
   134  		},
   135  	)
   136  
   137  	credentials, err := provider.FinalizeCredential(
   138  		nil,
   139  		environs.FinalizeCredentialParams{
   140  			Credential: cloudcred,
   141  		},
   142  	)
   143  	c.Assert(err, gc.IsNil)
   144  	c.Assert(credentials, gc.NotNil)
   145  	c.Assert(*credentials, jc.DeepEquals, cloudcred)
   146  
   147  }