github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/api/modelconfig/modelconfig_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package modelconfig_test
     5  
     6  import (
     7  	gitjujutesting "github.com/juju/testing"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	basetesting "github.com/juju/juju/api/base/testing"
    12  	"github.com/juju/juju/api/modelconfig"
    13  	"github.com/juju/juju/apiserver/params"
    14  	"github.com/juju/juju/environs/config"
    15  )
    16  
    17  type modelconfigSuite struct {
    18  	gitjujutesting.IsolationSuite
    19  }
    20  
    21  var _ = gc.Suite(&modelconfigSuite{})
    22  
    23  func (s *modelconfigSuite) TestModelGet(c *gc.C) {
    24  	apiCaller := basetesting.APICallerFunc(
    25  		func(objType string,
    26  			version int,
    27  			id, request string,
    28  			a, result interface{},
    29  		) error {
    30  			c.Check(objType, gc.Equals, "ModelConfig")
    31  			c.Check(id, gc.Equals, "")
    32  			c.Check(request, gc.Equals, "ModelGet")
    33  			c.Check(a, gc.IsNil)
    34  			c.Assert(result, gc.FitsTypeOf, &params.ModelConfigResults{})
    35  			results := result.(*params.ModelConfigResults)
    36  			results.Config = map[string]params.ConfigValue{
    37  				"foo": {"bar", "model"},
    38  			}
    39  			return nil
    40  		},
    41  	)
    42  	client := modelconfig.NewClient(apiCaller)
    43  	result, err := client.ModelGet()
    44  	c.Assert(err, jc.ErrorIsNil)
    45  	c.Assert(result, jc.DeepEquals, map[string]interface{}{
    46  		"foo": "bar",
    47  	})
    48  }
    49  
    50  func (s *modelconfigSuite) TestModelGetWithMetadata(c *gc.C) {
    51  	apiCaller := basetesting.APICallerFunc(
    52  		func(objType string,
    53  			version int,
    54  			id, request string,
    55  			a, result interface{},
    56  		) error {
    57  			c.Check(objType, gc.Equals, "ModelConfig")
    58  			c.Check(id, gc.Equals, "")
    59  			c.Check(request, gc.Equals, "ModelGet")
    60  			c.Check(a, gc.IsNil)
    61  			c.Assert(result, gc.FitsTypeOf, &params.ModelConfigResults{})
    62  			results := result.(*params.ModelConfigResults)
    63  			results.Config = map[string]params.ConfigValue{
    64  				"foo": {"bar", "model"},
    65  			}
    66  			return nil
    67  		},
    68  	)
    69  	client := modelconfig.NewClient(apiCaller)
    70  	result, err := client.ModelGetWithMetadata()
    71  	c.Assert(err, jc.ErrorIsNil)
    72  	c.Assert(result, jc.DeepEquals, config.ConfigValues{
    73  		"foo": {"bar", "model"},
    74  	})
    75  }
    76  
    77  func (s *modelconfigSuite) TestModelSet(c *gc.C) {
    78  	called := false
    79  	apiCaller := basetesting.APICallerFunc(
    80  		func(objType string,
    81  			version int,
    82  			id, request string,
    83  			a, result interface{},
    84  		) error {
    85  			c.Check(objType, gc.Equals, "ModelConfig")
    86  			c.Check(id, gc.Equals, "")
    87  			c.Check(request, gc.Equals, "ModelSet")
    88  			c.Check(a, jc.DeepEquals, params.ModelSet{
    89  				Config: map[string]interface{}{
    90  					"some-name":  "value",
    91  					"other-name": true,
    92  				},
    93  			})
    94  			called = true
    95  			return nil
    96  		},
    97  	)
    98  	client := modelconfig.NewClient(apiCaller)
    99  	err := client.ModelSet(map[string]interface{}{
   100  		"some-name":  "value",
   101  		"other-name": true,
   102  	})
   103  	c.Assert(err, jc.ErrorIsNil)
   104  	c.Assert(called, jc.IsTrue)
   105  }
   106  
   107  func (s *modelconfigSuite) TestModelUnset(c *gc.C) {
   108  	called := false
   109  	apiCaller := basetesting.APICallerFunc(
   110  		func(objType string,
   111  			version int,
   112  			id, request string,
   113  			a, result interface{},
   114  		) error {
   115  			c.Check(objType, gc.Equals, "ModelConfig")
   116  			c.Check(id, gc.Equals, "")
   117  			c.Check(request, gc.Equals, "ModelUnset")
   118  			c.Check(a, jc.DeepEquals, params.ModelUnset{
   119  				Keys: []string{"foo", "bar"},
   120  			})
   121  			called = true
   122  			return nil
   123  		},
   124  	)
   125  	client := modelconfig.NewClient(apiCaller)
   126  	err := client.ModelUnset("foo", "bar")
   127  	c.Assert(err, jc.ErrorIsNil)
   128  	c.Assert(called, jc.IsTrue)
   129  }