func (*facadeRegistrySuite) TestValidateNewFacade(c *gc.C) { checkValidateNewFacadeFailsWith(c, nil, `cannot wrap nil`) checkValidateNewFacadeFailsWith(c, "notafunc", `wrong type "string" is not a function`) checkValidateNewFacadeFailsWith(c, noArgs, `function ".*noArgs" does not take 3 parameters and return 2`) checkValidateNewFacadeFailsWith(c, badCountIn, `function ".*badCountIn" does not take 3 parameters and return 2`) checkValidateNewFacadeFailsWith(c, badCountOut, `function ".*badCountOut" does not take 3 parameters and return 2`) checkValidateNewFacadeFailsWith(c, wrongIn, `function ".*wrongIn" does not have the signature func \(\*state.State, \*common.Resources, common.Authorizer\) \(\*Type, error\)`) checkValidateNewFacadeFailsWith(c, wrongOut, `function ".*wrongOut" does not have the signature func \(\*state.State, \*common.Resources, common.Authorizer\) \(\*Type, error\)`) err := common.ValidateNewFacade(reflect.ValueOf(validFactory)) c.Assert(err, gc.IsNil) }
func checkValidateNewFacadeFailsWith(c *gc.C, obj interface{}, errMsg string) { err := common.ValidateNewFacade(reflect.ValueOf(obj)) c.Check(err, gc.NotNil) c.Check(err, gc.ErrorMatches, errMsg) }