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 }