func (*facadeRegistrySuite) TestWrapNewFacadeCallsFunc(c *gc.C) { wrapped, _, err := common.WrapNewFacade(validFactory) c.Assert(err, gc.IsNil) val, err := wrapped(nil, nil, nil, "") c.Assert(err, gc.IsNil) c.Check(*(val.(*int)), gc.Equals, 100) }
func (*facadeRegistrySuite) TestWrapNewFacadeHandlesId(c *gc.C) { wrapped, _, err := common.WrapNewFacade(validFactory) c.Assert(err, gc.IsNil) val, err := wrapped(nil, nil, nil, "badId") c.Check(err, gc.ErrorMatches, "id not found") c.Check(val, gc.Equals, nil) }
func (*facadeRegistrySuite) TestWrapNewFacadeCallsFunc(c *gc.C) { wrapped, _, err := common.WrapNewFacade(validFactory) c.Assert(err, jc.ErrorIsNil) val, err := wrapped(facadetest.Context{}) c.Assert(err, jc.ErrorIsNil) c.Check(*(val.(*int)), gc.Equals, 100) }
func (*facadeRegistrySuite) TestWrapNewFacadeCallsWithRightParams(c *gc.C) { authorizer := apiservertesting.FakeAuthorizer{} resources := common.NewResources() testFunc := func( st *state.State, resources *common.Resources, authorizer common.Authorizer, ) (*myResult, error) { return &myResult{st, resources, authorizer}, nil } wrapped, facadeType, err := common.WrapNewFacade(testFunc) c.Assert(err, gc.IsNil) c.Check(facadeType, gc.Equals, reflect.TypeOf((*myResult)(nil))) val, err := wrapped(nil, resources, authorizer, "") c.Assert(err, gc.IsNil) asResult := val.(*myResult) c.Check(asResult.st, gc.IsNil) c.Check(asResult.resources, gc.Equals, resources) c.Check(asResult.auth, gc.Equals, authorizer) }
func (*facadeRegistrySuite) TestWrapNewFacadeFailure(c *gc.C) { _, _, err := common.WrapNewFacade("notafunc") c.Check(err, gc.ErrorMatches, `wrong type "string" is not a function`) }