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  }