github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/apiserver/testing/fakeapi_test.go (about) 1 package testing_test 2 3 import ( 4 "github.com/juju/testing" 5 jc "github.com/juju/testing/checkers" 6 gc "gopkg.in/check.v1" 7 "gopkg.in/juju/names.v2" 8 9 "github.com/juju/juju/api" 10 "github.com/juju/juju/apiserver/params" 11 apiservertesting "github.com/juju/juju/apiserver/testing" 12 jtesting "github.com/juju/juju/testing" 13 ) 14 15 var _ = gc.Suite(&fakeAPISuite{}) 16 17 type fakeAPISuite struct { 18 testing.IsolationSuite 19 } 20 21 const fakeUUID = "f47ac10b-58cc-dead-beef-0e02b2c3d479" 22 23 func (*fakeAPISuite) TestFakeAPI(c *gc.C) { 24 var r root 25 srv := apiservertesting.NewAPIServer(func(modelUUID string) interface{} { 26 c.Check(modelUUID, gc.Equals, fakeUUID) 27 return &r 28 }) 29 defer srv.Close() 30 info := &api.Info{ 31 Addrs: srv.Addrs, 32 CACert: jtesting.CACert, 33 ModelTag: names.NewModelTag(fakeUUID), 34 } 35 _, err := api.Open(info, api.DialOpts{}) 36 c.Assert(err, jc.ErrorIsNil) 37 38 c.Assert(r.calledMethods, jc.DeepEquals, []string{"Login"}) 39 } 40 41 type root struct { 42 calledMethods []string 43 } 44 45 type facade struct { 46 r *root 47 } 48 49 func (r *root) Admin(id string) (facade, error) { 50 return facade{r}, nil 51 } 52 53 func (f facade) Login(req params.LoginRequest) (params.LoginResult, error) { 54 f.r.calledMethods = append(f.r.calledMethods, "Login") 55 return params.LoginResult{ 56 ModelTag: names.NewModelTag(fakeUUID).String(), 57 ControllerTag: names.NewControllerTag(fakeUUID).String(), 58 UserInfo: ¶ms.AuthUserInfo{ 59 DisplayName: "foo", 60 Identity: "user-bar", 61 }, 62 ServerVersion: "1.0.0", 63 }, nil 64 }