github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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, ¶ms.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, ¶ms.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 }