1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
4
package modelmanager_test
7
jc "github.com/juju/testing/checkers"
9
"gopkg.in/juju/names.v2"
11
basetesting "github.com/juju/juju/api/base/testing"
12
"github.com/juju/juju/api/modelmanager"
13
"github.com/juju/juju/apiserver/params"
14
"github.com/juju/juju/testing"
17
type modelInfoSuite struct {
21
var _ = gc.Suite(&modelInfoSuite{})
23
func (s *modelInfoSuite) checkCall(c *gc.C, objType string, id, request string) {
24
c.Check(objType, gc.Equals, "ModelManager")
25
c.Check(id, gc.Equals, "")
26
c.Check(request, gc.Equals, "ModelInfo")
29
func (s *modelInfoSuite) assertResponse(c *gc.C, result interface{}) *params.ModelInfoResults {
30
c.Assert(result, gc.FitsTypeOf, ¶ms.ModelInfoResults{})
31
return result.(*params.ModelInfoResults)
34
func (s *modelInfoSuite) TestModelInfo(c *gc.C) {
35
results := params.ModelInfoResults{
36
Results: []params.ModelInfoResult{{
37
Result: ¶ms.ModelInfo{Name: "name", UUID: "etc."},
39
Error: ¶ms.Error{Message: "woop"},
42
apiCaller := basetesting.APICallerFunc(
43
func(objType string, version int, id, request string, a, result interface{}) error {
44
s.checkCall(c, objType, id, request)
45
resp := s.assertResponse(c, result)
49
client := modelmanager.NewClient(apiCaller)
50
info, err := client.ModelInfo([]names.ModelTag{testing.ModelTag, testing.ModelTag})
51
c.Assert(err, jc.ErrorIsNil)
52
c.Assert(info, jc.DeepEquals, results.Results)
55
func (s *modelInfoSuite) TestInvalidResultCount(c *gc.C) {
56
apiCaller := basetesting.APICallerFunc(
57
func(objType string, version int, id, request string, a, result interface{}) error {
58
s.checkCall(c, objType, id, request)
59
c.Assert(a, jc.DeepEquals, params.Entities{
60
Entities: []params.Entity{{testing.ModelTag.String()}, {testing.ModelTag.String()}},
62
resp := s.assertResponse(c, result)
63
*resp = params.ModelInfoResults{Results: []params.ModelInfoResult{{}}}
67
client := modelmanager.NewClient(apiCaller)
68
_, err := client.ModelInfo([]names.ModelTag{testing.ModelTag, testing.ModelTag})
69
c.Assert(err, gc.ErrorMatches, "expected 2 result\\(s\\), got 1")