github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/apiserver/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/apiserver/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 err := s.api.CreatePool(params.StoragePool{ 30 Name: pname, 31 Provider: ptype, 32 Attrs: nil, 33 }) 34 c.Assert(err, jc.ErrorIsNil) 35 36 pools, err := s.poolManager.List() 37 c.Assert(err, jc.ErrorIsNil) 38 c.Assert(pools, gc.HasLen, 1) 39 c.Assert(pools[0], gc.DeepEquals, expected) 40 } 41 42 func (s *poolCreateSuite) TestCreatePoolError(c *gc.C) { 43 msg := "as expected" 44 s.baseStorageSuite.poolManager.createPool = func(name string, providerType jujustorage.ProviderType, attrs map[string]interface{}) (*jujustorage.Config, error) { 45 return nil, errors.New(msg) 46 } 47 48 err := s.api.CreatePool(params.StoragePool{}) 49 c.Assert(errors.Cause(err), gc.ErrorMatches, msg) 50 }