github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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 "github.com/juju/juju/caas" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 "gopkg.in/juju/names.v2" 11 12 "github.com/juju/juju/cloud" 13 "github.com/juju/juju/environs" 14 "github.com/juju/juju/state/stateenvirons" 15 statetesting "github.com/juju/juju/state/testing" 16 "github.com/juju/juju/testing/factory" 17 ) 18 19 type environSuite struct { 20 statetesting.StateSuite 21 } 22 23 var _ = gc.Suite(&environSuite{}) 24 25 func (s *environSuite) TestGetNewEnvironFunc(c *gc.C) { 26 var calls int 27 var callArgs environs.OpenParams 28 newEnviron := func(args environs.OpenParams) (environs.Environ, error) { 29 calls++ 30 callArgs = args 31 return nil, nil 32 } 33 stateenvirons.GetNewEnvironFunc(newEnviron)(s.State) 34 c.Assert(calls, gc.Equals, 1) 35 36 cfg, err := s.Model.ModelConfig() 37 c.Assert(err, jc.ErrorIsNil) 38 c.Assert(callArgs.Config, jc.DeepEquals, cfg) 39 } 40 41 func (s *environSuite) TestCloudSpec(c *gc.C) { 42 owner := s.Factory.MakeUser(c, nil).UserTag() 43 emptyCredential := cloud.NewEmptyCredential() 44 tag := names.NewCloudCredentialTag("dummy/" + owner.Id() + "/empty-credential") 45 err := s.State.UpdateCloudCredential(tag, emptyCredential) 46 c.Assert(err, jc.ErrorIsNil) 47 48 st := s.Factory.MakeModel(c, &factory.ModelParams{ 49 Name: "foo", 50 CloudName: "dummy", 51 CloudCredential: tag, 52 Owner: owner, 53 }) 54 defer st.Close() 55 56 m, err := st.Model() 57 c.Assert(err, jc.ErrorIsNil) 58 59 emptyCredential.Label = "empty-credential" 60 cloudSpec, err := stateenvirons.EnvironConfigGetter{st, m}.CloudSpec() 61 c.Assert(err, jc.ErrorIsNil) 62 c.Assert(cloudSpec, jc.DeepEquals, environs.CloudSpec{ 63 Type: "dummy", 64 Name: "dummy", 65 Region: "dummy-region", 66 Endpoint: "dummy-endpoint", 67 IdentityEndpoint: "dummy-identity-endpoint", 68 StorageEndpoint: "dummy-storage-endpoint", 69 Credential: &emptyCredential, 70 }) 71 } 72 73 func (s *environSuite) TestGetNewCAASBrokerFunc(c *gc.C) { 74 var calls int 75 var callArgs environs.OpenParams 76 newBroker := func(args environs.OpenParams) (caas.Broker, error) { 77 calls++ 78 callArgs = args 79 return nil, nil 80 } 81 stateenvirons.GetNewCAASBrokerFunc(newBroker)(s.State) 82 c.Assert(calls, gc.Equals, 1) 83 84 cfg, err := s.Model.ModelConfig() 85 c.Assert(err, jc.ErrorIsNil) 86 c.Assert(callArgs.Config, jc.DeepEquals, cfg) 87 }