public Fixture() { _grammars.OnAddition = readGrammar; MethodExtensions.ForAttribute <HiddenAttribute>(GetType(), x => Policies.IsPrivate = true); MethodExtensions.ForAttribute <TagAttribute>(GetType(), x => x.Tags.Each(t => Policies.Tag(t))); GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance).Where(methodFromThis).Each(method => { string grammarKey = method.GetKey(); try { IGrammar grammar = GrammarBuilder.BuildGrammar(method, this); this[grammarKey] = grammar; MethodExtensions.ForAttribute <HiddenAttribute>(method, x => _policies.HideGrammar(grammarKey)); MethodExtensions.ForAttribute <TagAttribute>(method, x => x.Tags.Each(t => _policies.Tag(grammarKey, t))); } catch (Exception e) { _errors.Add(new GrammarError { ErrorText = e.ToString(), Message = "Could not create Grammar '{0}' of Fixture '{1}'".ToFormat(grammarKey, GetType().GetFixtureAlias()) }); } }); }
private void readAttributes(ICustomAttributeProvider parameter) { parameter.ForAttributes <ICellModifier>(x => x.Modify(this)); MethodExtensions.ForAttribute <SelectionValuesAttribute>(parameter, att => _selectionAttribute = att); readType(); }
public Cell(ParameterInfo parameter) { _key = parameter.Name; _type = parameter.ParameterType; if (parameter.Name.IsEmpty()) { _key = "returnValue"; MethodExtensions.ForAttribute <AliasAsAttribute>(parameter, att => _key = att.Alias); IsResult = true; } readAttributes(parameter); }