github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/state/stateenvirons/config_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package stateenvirons_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 "gopkg.in/juju/names.v2" 10 11 "github.com/juju/juju/cloud" 12 "github.com/juju/juju/environs" 13 "github.com/juju/juju/state/stateenvirons" 14 statetesting "github.com/juju/juju/state/testing" 15 "github.com/juju/juju/testing/factory" 16 ) 17 18 type environSuite struct { 19 statetesting.StateSuite 20 } 21 22 var _ = gc.Suite(&environSuite{}) 23 24 func (s *environSuite) TestGetNewEnvironFunc(c *gc.C) { 25 var calls int 26 var callArgs environs.OpenParams 27 newEnviron := func(args environs.OpenParams) (environs.Environ, error) { 28 calls++ 29 callArgs = args 30 return nil, nil 31 } 32 stateenvirons.GetNewEnvironFunc(newEnviron)(s.State) 33 c.Assert(calls, gc.Equals, 1) 34 35 cfg, err := s.State.ModelConfig() 36 c.Assert(err, jc.ErrorIsNil) 37 c.Assert(callArgs.Config, jc.DeepEquals, cfg) 38 } 39 40 func (s *environSuite) TestCloudSpec(c *gc.C) { 41 owner := s.Factory.MakeUser(c, nil).UserTag() 42 emptyCredential := cloud.NewEmptyCredential() 43 tag := names.NewCloudCredentialTag("dummy/" + owner.Id() + "/empty-credential") 44 err := s.State.UpdateCloudCredential(tag, emptyCredential) 45 c.Assert(err, jc.ErrorIsNil) 46 47 st := s.Factory.MakeModel(c, &factory.ModelParams{ 48 Name: "foo", 49 CloudName: "dummy", 50 CloudCredential: tag, 51 Owner: owner, 52 }) 53 defer st.Close() 54 55 emptyCredential.Label = "empty-credential" 56 cloudSpec, err := stateenvirons.EnvironConfigGetter{st}.CloudSpec(st.ModelTag()) 57 c.Assert(err, jc.ErrorIsNil) 58 c.Assert(cloudSpec, jc.DeepEquals, environs.CloudSpec{ 59 Type: "dummy", 60 Name: "dummy", 61 Region: "dummy-region", 62 Endpoint: "dummy-endpoint", 63 IdentityEndpoint: "dummy-identity-endpoint", 64 StorageEndpoint: "dummy-storage-endpoint", 65 Credential: &emptyCredential, 66 }) 67 }