github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/oci/storage_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package oci_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/provider/oci" 11 "github.com/juju/juju/storage" 12 ) 13 14 type storageSuite struct { 15 commonSuite 16 17 provider storage.Provider 18 } 19 20 var _ = gc.Suite(&storageSuite{}) 21 22 func (s *storageSuite) SetUpTest(c *gc.C) { 23 s.commonSuite.SetUpTest(c) 24 25 var err error 26 s.provider, err = s.env.StorageProvider(oci.OciStorageProviderType) 27 c.Assert(err, gc.IsNil) 28 } 29 30 func (s *storageSuite) TestVolumeSource(c *gc.C) { 31 source, err := s.provider.VolumeSource(nil) 32 c.Assert(err, gc.IsNil) 33 c.Assert(source, gc.NotNil) 34 cfg, err := storage.NewConfig("iscsi", oci.OciStorageProviderType, 35 map[string]interface{}{ 36 oci.OciVolumeType: oci.IscsiPool, 37 }) 38 c.Assert(err, gc.IsNil) 39 c.Assert(cfg, gc.NotNil) 40 41 source, err = s.provider.VolumeSource(cfg) 42 c.Assert(err, gc.IsNil) 43 c.Assert(source, gc.NotNil) 44 } 45 46 func (s *storageSuite) TestSupports(c *gc.C) { 47 ok := s.provider.Supports(storage.StorageKindBlock) 48 c.Assert(ok, jc.IsTrue) 49 50 ok = s.provider.Supports(storage.StorageKindFilesystem) 51 c.Assert(ok, jc.IsFalse) 52 } 53 54 func (s *storageSuite) TestDynamic(c *gc.C) { 55 ok := s.provider.Dynamic() 56 c.Assert(ok, jc.IsTrue) 57 } 58 59 func (s *storageSuite) TestValidateConfig(c *gc.C) { 60 cfg, err := storage.NewConfig("iscsi", oci.OciStorageProviderType, 61 map[string]interface{}{ 62 oci.OciVolumeType: oci.IscsiPool, 63 }) 64 c.Assert(err, gc.IsNil) 65 err = s.provider.ValidateConfig(cfg) 66 c.Assert(err, gc.IsNil) 67 } 68 69 func (s *storageSuite) TestValidateConfigWithError(c *gc.C) { 70 cfg, err := storage.NewConfig("random-pool", oci.OciStorageProviderType, 71 map[string]interface{}{ 72 oci.OciVolumeType: "no-idea-what-I-am", 73 }) 74 c.Assert(err, gc.IsNil) 75 76 err = s.provider.ValidateConfig(cfg) 77 c.Assert(err, gc.ErrorMatches, "invalid volume-type \"no-idea-what-I-am\"") 78 }