github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/api/client/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 jc "github.com/juju/testing/checkers" 8 "go.uber.org/mock/gomock" 9 gc "gopkg.in/check.v1" 10 11 basemocks "github.com/juju/juju/api/base/mocks" 12 "github.com/juju/juju/api/client/modelconfig" 13 "github.com/juju/juju/core/constraints" 14 "github.com/juju/juju/environs/config" 15 "github.com/juju/juju/rpc/params" 16 ) 17 18 type modelconfigSuite struct{} 19 20 var _ = gc.Suite(&modelconfigSuite{}) 21 22 func (s *modelconfigSuite) TestModelGet(c *gc.C) { 23 ctrl := gomock.NewController(c) 24 defer ctrl.Finish() 25 26 var args interface{} 27 res := new(params.ModelConfigResults) 28 results := params.ModelConfigResults{ 29 Config: map[string]params.ConfigValue{ 30 "foo": {"bar", "model"}, 31 }, 32 } 33 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 34 mockFacadeCaller.EXPECT().FacadeCall("ModelGet", args, res).SetArg(2, results).Return(nil) 35 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 36 result, err := client.ModelGet() 37 c.Assert(err, jc.ErrorIsNil) 38 c.Assert(result, jc.DeepEquals, map[string]interface{}{ 39 "foo": "bar", 40 }) 41 } 42 43 func (s *modelconfigSuite) TestModelGetWithMetadata(c *gc.C) { 44 ctrl := gomock.NewController(c) 45 defer ctrl.Finish() 46 47 var args interface{} 48 res := new(params.ModelConfigResults) 49 results := params.ModelConfigResults{ 50 Config: map[string]params.ConfigValue{ 51 "foo": {"bar", "model"}, 52 }, 53 } 54 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 55 mockFacadeCaller.EXPECT().FacadeCall("ModelGet", args, res).SetArg(2, results).Return(nil) 56 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 57 result, err := client.ModelGetWithMetadata() 58 c.Assert(err, jc.ErrorIsNil) 59 c.Assert(result, jc.DeepEquals, config.ConfigValues{ 60 "foo": {"bar", "model"}, 61 }) 62 } 63 64 func (s *modelconfigSuite) TestModelSet(c *gc.C) { 65 ctrl := gomock.NewController(c) 66 defer ctrl.Finish() 67 68 var res interface{} 69 args := params.ModelSet{ 70 Config: map[string]interface{}{ 71 "some-name": "value", 72 "other-name": true, 73 }, 74 } 75 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 76 mockFacadeCaller.EXPECT().FacadeCall("ModelSet", args, res).Return(nil) 77 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 78 err := client.ModelSet(map[string]interface{}{ 79 "some-name": "value", 80 "other-name": true, 81 }) 82 c.Assert(err, jc.ErrorIsNil) 83 } 84 85 func (s *modelconfigSuite) TestModelUnset(c *gc.C) { 86 ctrl := gomock.NewController(c) 87 defer ctrl.Finish() 88 89 var res interface{} 90 args := params.ModelUnset{ 91 Keys: []string{"foo", "bar"}, 92 } 93 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 94 mockFacadeCaller.EXPECT().FacadeCall("ModelUnset", args, res).Return(nil) 95 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 96 err := client.ModelUnset("foo", "bar") 97 c.Assert(err, jc.ErrorIsNil) 98 } 99 100 func (s *modelconfigSuite) TestSetSupport(c *gc.C) { 101 ctrl := gomock.NewController(c) 102 defer ctrl.Finish() 103 104 var res interface{} 105 args := params.ModelSLA{ 106 ModelSLAInfo: params.ModelSLAInfo{ 107 Level: "foobar", 108 Owner: "bob", 109 }, 110 Credentials: []byte("creds"), 111 } 112 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 113 mockFacadeCaller.EXPECT().FacadeCall("SetSLALevel", args, res).Return(nil) 114 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 115 err := client.SetSLALevel("foobar", "bob", []byte("creds")) 116 c.Assert(err, jc.ErrorIsNil) 117 } 118 119 func (s *modelconfigSuite) TestGetSupport(c *gc.C) { 120 ctrl := gomock.NewController(c) 121 defer ctrl.Finish() 122 123 var args interface{} 124 res := new(params.StringResult) 125 results := params.StringResult{ 126 Result: "level", 127 } 128 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 129 mockFacadeCaller.EXPECT().FacadeCall("SLALevel", args, res).SetArg(2, results).Return(nil) 130 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 131 level, err := client.SLALevel() 132 c.Assert(err, jc.ErrorIsNil) 133 c.Assert(level, gc.Equals, "level") 134 } 135 136 func (s *modelconfigSuite) TestSequences(c *gc.C) { 137 ctrl := gomock.NewController(c) 138 defer ctrl.Finish() 139 140 var args interface{} 141 res := new(params.ModelSequencesResult) 142 results := params.ModelSequencesResult{ 143 Sequences: map[string]int{"foo": 5, "bar": 2}, 144 } 145 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 146 mockFacadeCaller.EXPECT().FacadeCall("Sequences", args, res).SetArg(2, results).Return(nil) 147 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 148 sequences, err := client.Sequences() 149 c.Assert(err, jc.ErrorIsNil) 150 c.Assert(sequences, jc.DeepEquals, map[string]int{"foo": 5, "bar": 2}) 151 } 152 153 func (s *modelconfigSuite) TestGetModelConstraints(c *gc.C) { 154 ctrl := gomock.NewController(c) 155 defer ctrl.Finish() 156 157 var args interface{} 158 res := new(params.GetConstraintsResults) 159 results := params.GetConstraintsResults{ 160 Constraints: constraints.MustParse("arch=amd64"), 161 } 162 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 163 mockFacadeCaller.EXPECT().FacadeCall("GetModelConstraints", args, res).SetArg(2, results).Return(nil) 164 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 165 result, err := client.GetModelConstraints() 166 c.Assert(err, jc.ErrorIsNil) 167 c.Assert(result, jc.DeepEquals, constraints.MustParse("arch=amd64")) 168 } 169 170 func (s *modelconfigSuite) TestSetModelConstraints(c *gc.C) { 171 ctrl := gomock.NewController(c) 172 defer ctrl.Finish() 173 174 var res interface{} 175 args := params.SetConstraints{ 176 Constraints: constraints.MustParse("arch=amd64"), 177 } 178 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 179 mockFacadeCaller.EXPECT().FacadeCall("SetModelConstraints", args, res).Return(nil) 180 client := modelconfig.NewClientFromCaller(mockFacadeCaller) 181 err := client.SetModelConstraints(constraints.MustParse("arch=amd64")) 182 c.Assert(err, jc.ErrorIsNil) 183 }