示例#1
0
        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())
                    });
                }
            });
        }
示例#2
0
        private void readAttributes(ICustomAttributeProvider parameter)
        {
            parameter.ForAttributes <ICellModifier>(x => x.Modify(this));
            MethodExtensions.ForAttribute <SelectionValuesAttribute>(parameter, att => _selectionAttribute = att);

            readType();
        }
示例#3
0
        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);
        }