github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/storage/poolmanager/defaultpool_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package poolmanager_test
     5  
     6  import (
     7  	"github.com/juju/testing"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/storage"
    12  	"github.com/juju/juju/storage/poolmanager"
    13  	dummystorage "github.com/juju/juju/storage/provider/dummy"
    14  )
    15  
    16  type defaultStoragePoolsSuite struct {
    17  	testing.IsolationSuite
    18  }
    19  
    20  var _ = gc.Suite(&defaultStoragePoolsSuite{})
    21  
    22  func (s *defaultStoragePoolsSuite) TestDefaultStoragePools(c *gc.C) {
    23  	p1, err := storage.NewConfig("pool1", storage.ProviderType("whatever"), map[string]interface{}{"1": "2"})
    24  	c.Assert(err, jc.ErrorIsNil)
    25  	p2, err := storage.NewConfig("pool2", storage.ProviderType("whatever"), map[string]interface{}{"3": "4"})
    26  	c.Assert(err, jc.ErrorIsNil)
    27  	provider := &dummystorage.StorageProvider{
    28  		DefaultPools_: []*storage.Config{p1, p2},
    29  	}
    30  
    31  	settings := poolmanager.MemSettings{make(map[string]map[string]interface{})}
    32  	pm := poolmanager.New(settings, storage.StaticProviderRegistry{
    33  		map[storage.ProviderType]storage.Provider{"whatever": provider},
    34  	})
    35  
    36  	err = poolmanager.AddDefaultStoragePools(provider, pm)
    37  	c.Assert(err, jc.ErrorIsNil)
    38  
    39  	c.Assert(settings.Settings, jc.DeepEquals, map[string]map[string]interface{}{
    40  		"pool#pool1": map[string]interface{}{"1": "2", "name": "pool1", "type": "whatever"},
    41  		"pool#pool2": map[string]interface{}{"3": "4", "name": "pool2", "type": "whatever"},
    42  	})
    43  }