github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/oracle/storage_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 "github.com/juju/juju/environs" 13 "github.com/juju/juju/provider/oracle" 14 oracletesting "github.com/juju/juju/provider/oracle/testing" 15 "github.com/juju/juju/storage" 16 "github.com/juju/juju/testing" 17 ) 18 19 type storageProviderSuite struct { 20 gitjujutesting.IsolationSuite 21 } 22 23 var _ = gc.Suite(&storageProviderSuite{}) 24 25 func NewStorageProviderTest(c *gc.C) storage.Provider { 26 env, err := oracle.NewOracleEnviron( 27 &oracle.EnvironProvider{}, 28 environs.OpenParams{ 29 Config: testing.ModelConfig(c), 30 }, 31 oracletesting.DefaultEnvironAPI, 32 &advancingClock, 33 ) 34 35 c.Assert(err, gc.IsNil) 36 c.Assert(env, gc.NotNil) 37 38 provider, err := env.StorageProvider( 39 oracle.DefaultStorageProviderType, 40 ) 41 42 c.Assert(err, gc.IsNil) 43 c.Assert(provider, gc.NotNil) 44 45 return provider 46 } 47 48 func (s *storageProviderSuite) NewStorageProvider(c *gc.C) storage.Provider { 49 return NewStorageProviderTest(c) 50 } 51 52 func (s *storageProviderSuite) TestVolumeSource(c *gc.C) { 53 provider := s.NewStorageProvider(c) 54 source, err := provider.VolumeSource(nil) 55 c.Assert(err, gc.IsNil) 56 c.Assert(source, gc.NotNil) 57 cfg, err := storage.NewConfig("oracle-latency", oracle.DefaultTypes[0], 58 map[string]interface{}{ 59 oracle.OracleVolumeType: oracle.OracleLatencyPool, 60 }) 61 c.Assert(err, gc.IsNil) 62 c.Assert(cfg, gc.NotNil) 63 64 source, err = provider.VolumeSource(cfg) 65 c.Assert(err, gc.IsNil) 66 c.Assert(source, gc.NotNil) 67 } 68 69 func (s *storageProviderSuite) TestFileSystemSource(c *gc.C) { 70 provider := s.NewStorageProvider(c) 71 72 _, err := provider.FilesystemSource(nil) 73 c.Assert(err, gc.NotNil) 74 c.Assert(errors.IsNotSupported(err), jc.IsTrue) 75 } 76 77 func (s *storageProviderSuite) TestSupports(c *gc.C) { 78 provider := s.NewStorageProvider(c) 79 80 ok := provider.Supports(storage.StorageKindBlock) 81 c.Assert(ok, jc.IsTrue) 82 83 ok = provider.Supports(storage.StorageKindFilesystem) 84 c.Assert(ok, jc.IsFalse) 85 } 86 87 func (s *storageProviderSuite) TestScope(c *gc.C) { 88 provider := s.NewStorageProvider(c) 89 90 scope := provider.Scope() 91 c.Assert(scope, jc.DeepEquals, storage.ScopeEnviron) 92 } 93 94 func (s *storageProviderSuite) TestDynamic(c *gc.C) { 95 provider := s.NewStorageProvider(c) 96 97 ok := provider.Dynamic() 98 c.Assert(ok, jc.IsTrue) 99 } 100 101 func (s *storageProviderSuite) TestDefaultPools(c *gc.C) { 102 provider := s.NewStorageProvider(c) 103 cfg := provider.DefaultPools() 104 c.Assert(cfg, gc.NotNil) 105 } 106 107 func (s *storageProviderSuite) TestValidateConfig(c *gc.C) { 108 provider := s.NewStorageProvider(c) 109 cfg, err := storage.NewConfig("oracle-latency", oracle.DefaultTypes[0], 110 map[string]interface{}{ 111 oracle.OracleVolumeType: oracle.OracleLatencyPool, 112 }) 113 c.Assert(err, gc.IsNil) 114 err = provider.ValidateConfig(cfg) 115 c.Assert(err, gc.IsNil) 116 } 117 118 func (s *storageProviderSuite) TestValidateConfigWithError(c *gc.C) { 119 provider := s.NewStorageProvider(c) 120 cfg, err := storage.NewConfig("some-test-name", oracle.DefaultTypes[0], 121 map[string]interface{}{ 122 "some-werid-type": 321, 123 }) 124 c.Assert(err, gc.IsNil) 125 126 err = provider.ValidateConfig(cfg) 127 c.Assert(err, gc.IsNil) 128 129 cfg, err = storage.NewConfig("some-test-name", oracle.DefaultTypes[0], 130 map[string]interface{}{ 131 oracle.OracleVolumeType: 321, 132 }) 133 c.Assert(err, gc.IsNil) 134 135 err = provider.ValidateConfig(cfg) 136 c.Assert(err, gc.NotNil) 137 138 cfg, err = storage.NewConfig("some-test-name", oracle.DefaultTypes[0], 139 map[string]interface{}{ 140 oracle.OracleVolumeType: "some-string", 141 }) 142 c.Assert(err, gc.IsNil) 143 144 err = provider.ValidateConfig(cfg) 145 c.Assert(err, gc.NotNil) 146 }