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  }