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  }