github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/client/storage/poolcreate_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package storage_test 5 6 import ( 7 "github.com/juju/errors" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/rpc/params" 12 jujustorage "github.com/juju/juju/storage" 13 "github.com/juju/juju/storage/provider" 14 ) 15 16 type poolCreateSuite struct { 17 baseStorageSuite 18 } 19 20 var _ = gc.Suite(&poolCreateSuite{}) 21 22 func (s *poolCreateSuite) TestCreatePool(c *gc.C) { 23 const ( 24 pname = "pname" 25 ptype = string(provider.LoopProviderType) 26 ) 27 expected, _ := jujustorage.NewConfig(pname, provider.LoopProviderType, nil) 28 29 args := params.StoragePoolArgs{ 30 Pools: []params.StoragePool{{ 31 Name: pname, 32 Provider: ptype, 33 Attrs: nil, 34 }}, 35 } 36 results, err := s.api.CreatePool(args) 37 c.Assert(err, jc.ErrorIsNil) 38 c.Assert(results.Results, gc.HasLen, 1) 39 c.Assert(results.Results[0].Error, gc.IsNil) 40 41 pools, err := s.poolManager.List() 42 c.Assert(err, jc.ErrorIsNil) 43 c.Assert(pools, gc.HasLen, 1) 44 c.Assert(pools[0], gc.DeepEquals, expected) 45 } 46 47 func (s *poolCreateSuite) TestCreatePoolError(c *gc.C) { 48 msg := "as expected" 49 s.baseStorageSuite.poolManager.createPool = func(name string, providerType jujustorage.ProviderType, attrs map[string]interface{}) (*jujustorage.Config, error) { 50 return nil, errors.New(msg) 51 } 52 53 args := params.StoragePoolArgs{ 54 Pools: []params.StoragePool{{ 55 Name: "doesnt-matter", 56 }}, 57 } 58 results, err := s.api.CreatePool(args) 59 c.Assert(err, jc.ErrorIsNil) 60 c.Assert(results.Results, gc.HasLen, 1) 61 c.Assert(results.Results[0].Error, jc.DeepEquals, ¶ms.Error{ 62 Message: "as expected", 63 }) 64 }