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  }