github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/facades/client/storage/poolupdate_test.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package storage_test 5 6 import ( 7 "fmt" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/apiserver/params" 13 "github.com/juju/juju/storage" 14 "github.com/juju/juju/storage/provider" 15 ) 16 17 type poolUpdateSuite struct { 18 baseStorageSuite 19 } 20 21 var _ = gc.Suite(&poolUpdateSuite{}) 22 23 func (s *poolUpdateSuite) createPools(c *gc.C, num int) { 24 var err error 25 for i := 0; i < num; i++ { 26 poolName := fmt.Sprintf("%v%v", tstName, i) 27 s.baseStorageSuite.pools[poolName], err = 28 storage.NewConfig(poolName, provider.LoopProviderType, map[string]interface{}{ 29 "zip": "zap", 30 "beep": "boop", 31 }) 32 c.Assert(err, jc.ErrorIsNil) 33 } 34 } 35 36 func (s *poolUpdateSuite) TestUpdatePool(c *gc.C) { 37 s.createPools(c, 1) 38 poolName := fmt.Sprintf("%v%v", tstName, 0) 39 newAttrs := map[string]interface{}{ 40 "foo1": "bar1", 41 "zip": "zoom", 42 } 43 44 args := params.StoragePoolArgs{ 45 Pools: []params.StoragePool{{ 46 Name: poolName, 47 Attrs: newAttrs, 48 }}, 49 } 50 results, err := s.api.UpdatePool(args) 51 c.Assert(err, jc.ErrorIsNil) 52 c.Assert(results.Results, gc.HasLen, 1) 53 c.Assert(results.Results[0].Error, gc.IsNil) 54 55 expected, err := storage.NewConfig(poolName, provider.LoopProviderType, newAttrs) 56 c.Assert(err, jc.ErrorIsNil) 57 58 pools, err := s.poolManager.List() 59 c.Assert(err, jc.ErrorIsNil) 60 c.Assert(pools, gc.HasLen, 1) 61 c.Assert(pools[0], gc.DeepEquals, expected) 62 } 63 64 func (s *poolUpdateSuite) TestUpdatePoolError(c *gc.C) { 65 poolName := fmt.Sprintf("%v%v", tstName, 0) 66 args := params.StoragePoolArgs{ 67 Pools: []params.StoragePool{{ 68 Name: poolName, 69 }}, 70 } 71 results, err := s.api.UpdatePool(args) 72 c.Assert(err, gc.IsNil) 73 c.Assert(results.Results, gc.HasLen, 1) 74 c.Assert(results.Results[0].Error, jc.DeepEquals, ¶ms.Error{ 75 Message: "mock pool manager: get pool testpool0 not found", 76 Code: "not found", 77 }) 78 }