github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/api/agent/uniter/model_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package uniter_test
     5  
     6  import (
     7  	"github.com/juju/names/v5"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/api/agent/uniter"
    12  	basetesting "github.com/juju/juju/api/base/testing"
    13  	"github.com/juju/juju/core/model"
    14  	"github.com/juju/juju/rpc/params"
    15  	coretesting "github.com/juju/juju/testing"
    16  )
    17  
    18  type modelSuite struct {
    19  	coretesting.BaseSuite
    20  }
    21  
    22  var _ = gc.Suite(&modelSuite{})
    23  
    24  func (s *modelSuite) TestModel(c *gc.C) {
    25  	apiCaller := basetesting.APICallerFunc(func(objType string, version int, id, request string, arg, result interface{}) error {
    26  		c.Assert(objType, gc.Equals, "Uniter")
    27  		c.Assert(id, gc.Equals, "")
    28  		switch request {
    29  		case "CurrentModel":
    30  			c.Assert(arg, gc.IsNil)
    31  			c.Assert(result, gc.FitsTypeOf, &params.ModelResult{})
    32  			*(result.(*params.ModelResult)) = params.ModelResult{
    33  				Name: "mary",
    34  				UUID: "deadbeaf",
    35  				Type: "caas",
    36  			}
    37  		default:
    38  			c.Fatalf("unexpected api call %q", request)
    39  		}
    40  		return nil
    41  	})
    42  	client := uniter.NewState(apiCaller, names.NewUnitTag("mysql/0"))
    43  	m, err := client.Model()
    44  	c.Assert(err, jc.ErrorIsNil)
    45  	c.Assert(m, jc.DeepEquals, &model.Model{
    46  		Name:      "mary",
    47  		UUID:      "deadbeaf",
    48  		ModelType: model.CAAS,
    49  	})
    50  }