コード例 #1
0
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
   return GetOrCreateContextSpecification(context,
                                          _reflectionTypeNameCache.GetClrName(specification.DeclaringType),
                                          specification.Name,
                                          specification.IsIgnored());
 }
コード例 #2
0
        public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
        {
            var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

            var fullyQualifiedTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
            var typeName = GetNormalizedTypeName(fullyQualifiedTypeName);

            var behaviorElement = GetOrCreateBehavior(_provider,
#if RESHARPER_61
                                                      _manager, _psiModuleManager, _cacheManager,
#endif
                                                      _project,
                                                      _projectEnvoy,
                                                      context,
                                                      behavior.DeclaringType.FullyQualifiedName,
                                                      behavior.Name,
                                                      behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                                      fullyQualifiedTypeName);

            if (!TypeNameCache.ContainsKey(typeName))
            {
                TypeNameCache.Add(typeName, fullyQualifiedTypeName);
            }

            return(behaviorElement);
        }
コード例 #3
0
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
     return(this.GetOrCreateBehaviorSpecification(behavior,
                                                  this._reflectionTypeNameCache.GetClrName(behaviorSpecification.DeclaringType),
                                                  behaviorSpecification.Name,
                                                  behaviorSpecification.IsIgnored()));
 }
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
     return this.GetOrCreateBehaviorSpecification(behavior,
                                             this._reflectionTypeNameCache.GetClrName(behaviorSpecification.DeclaringType),
                                             behaviorSpecification.Name,
                                             behaviorSpecification.IsIgnored());
 }
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
     return(this.GetOrCreateBehaviorSpecification(behavior,
                                                  new ClrTypeName(behaviorSpecification.DeclaringType.FullyQualifiedName),
                                                  behaviorSpecification.Name,
                                                  behaviorSpecification.IsIgnored()));
 }
コード例 #6
0
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
   return new ContextSpecificationElement(_provider,
                                          context,
                                          _projectEnvoy,
                                          specification.DeclaringType.FullyQualifiedName,
                                          specification.Name,
                                          specification.IsIgnored());
 }
コード例 #7
0
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
   return new BehaviorSpecificationElement(_provider,
                                           behavior,
                                           _projectEnvoy,
                                           behaviorSpecification.DeclaringType.FullyQualifiedName,
                                           behaviorSpecification.Name,
                                           behaviorSpecification.IsIgnored());
 }
コード例 #8
0
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
     return(new BehaviorSpecificationElement(_provider,
                                             behavior,
                                             _projectEnvoy,
                                             behavior.FullyQualifiedTypeName ?? behaviorSpecification.DeclaringType.FullyQualifiedName,
                                             behaviorSpecification.Name,
                                             behaviorSpecification.IsIgnored()));
 }
        public IEnumerable<BehaviorSpecificationElement> CreateBehaviorSpecificationsFromBehavior(
          BehaviorElement behavior,
          IMetadataField behaviorSpecification)
        {
            var typeContainingBehaviorSpecifications = behaviorSpecification.GetFirstGenericArgument();

            foreach (var specification in typeContainingBehaviorSpecifications.GetSpecifications())
            {
                yield return this.CreateBehaviorSpecification(behavior, specification);
            }
        }
コード例 #10
0
        public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
        {
            IMetadataTypeInfo typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

            return(new BehaviorElement(_provider,
                                       context,
                                       _project,
                                       behavior.DeclaringType.FullyQualifiedName,
                                       behavior.Name,
                                       behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored()));
        }
コード例 #11
0
        private ITestMetadata GetFieldTest(IMetadataField field, IIdentity identity)
        {
            if (field.Type.NotNull().FullName != "Machine.Specifications.It")
            {
                return(null);
            }

            var text = field.Name.Replace(oldChar: '_', newChar: ' ');

            return(new MemberTestMetadata(identity.CreateChildIdentity(text), _project, text.Replace("_", " "), field));
        }
コード例 #12
0
    public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
    {
      IMetadataTypeInfo typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

      return new BehaviorElement(_provider,
                                 context,
                                 _projectEnvoy,
                                 behavior.DeclaringType.FullyQualifiedName,
                                 behavior.Name,
                                 behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored());
    }
コード例 #13
0
        public IEnumerable <BehaviorSpecificationElement> CreateBehaviorSpecificationsFromBehavior(
            BehaviorElement behavior,
            IMetadataField behaviorSpecification)
        {
            var typeContainingBehaviorSpecifications = behaviorSpecification.GetFirstGenericArgument();

            foreach (var specification in typeContainingBehaviorSpecifications.GetSpecifications())
            {
                yield return(this.CreateBehaviorSpecification(behavior, specification));
            }
        }
コード例 #14
0
    public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
    {
      return GetOrCreateContextSpecification(_provider,
#if RESHARPER_61
                                             _manager, _psiModuleManager, _cacheManager, 
#endif
                                             _project,
                                             context,
                                             _projectEnvoy,
                                             specification.DeclaringType.FullyQualifiedName,
                                             specification.Name);
    }
コード例 #15
0
        public string Present(IMetadataField field)
        {
            var metadataType           = (field.Type as IMetadataClassType)?.Type;
            var displayFormatAttribute = metadataType?.GetAttributeData <DisplayFormatAttribute>();

            if (displayFormatAttribute == null)
            {
                return(null);
            }

            return(_introspectionPresenter.Present(displayFormatAttribute.ToCommon(), field.ToCommon()));
        }
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
   return GetOrCreateContextSpecification(_provider,
                                          _manager,
                                          _psiModuleManager,
                                          _cacheManager,
                                          _project,
                                          context,
                                          _projectEnvoy,
                                          _reflectionTypeNameCache.GetClrName(specification.DeclaringType),
                                          specification.Name,
                                          specification.IsIgnored());
 }
コード例 #17
0
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
   return GetOrCreateBehaviorSpecification(_provider,
                                           _manager,
                                           _psiModuleManager,
                                           _cacheManager,
                                           _project,
                                           behavior,
                                           _projectEnvoy,
                                           _reflectionTypeNameCache.GetClrName(behaviorSpecification.DeclaringType),
                                           behaviorSpecification.Name,
                                           behaviorSpecification.IsIgnored());
 }
コード例 #18
0
 BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                          IMetadataField behaviorSpecification)
 {
     return(GetOrCreateBehaviorSpecification(_provider,
                                             _manager,
                                             _psiModuleManager,
                                             _cacheManager,
                                             _project,
                                             behavior,
                                             _projectEnvoy,
                                             _reflectionTypeNameCache.GetClrName(behaviorSpecification.DeclaringType),
                                             behaviorSpecification.Name,
                                             behaviorSpecification.IsIgnored()));
 }
コード例 #19
0
    BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                             IMetadataField behaviorSpecification)
    {
      return GetOrCreateBehaviorSpecification(_provider,
#if RESHARPER_61
                                              _manager, _psiModuleManager, _cacheManager, 
#endif
                                              _project,
                                              behavior,
                                              _projectEnvoy,
                                              behavior.FullyQualifiedTypeName ?? behaviorSpecification.DeclaringType.FullyQualifiedName,
                                              behaviorSpecification.Name,
                                              behaviorSpecification.IsIgnored());
    }
コード例 #20
0
        BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                                 IMetadataField behaviorSpecification)
        {
            return(GetOrCreateBehaviorSpecification(_provider,
#if RESHARPER_61
                                                    _manager, _psiModuleManager, _cacheManager,
#endif
                                                    _project,
                                                    behavior,
                                                    _projectEnvoy,
                                                    behavior.FullyQualifiedTypeName ?? behaviorSpecification.DeclaringType.FullyQualifiedName,
                                                    behaviorSpecification.Name,
                                                    behaviorSpecification.IsIgnored()));
        }
        public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
        {
            var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

            var metadataTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
            var fieldType = new NormalizedTypeName(metadataTypeName);

            var behaviorElement = this.GetOrCreateBehavior(context,
                                                      this._reflectionTypeNameCache.GetClrName(behavior.DeclaringType),
                                                      behavior.Name,
                                                      behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                                      fieldType);

            return behaviorElement;
        }
コード例 #22
0
        public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
        {
            var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

            var metadataTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
            var fieldType        = new NormalizedTypeName(new ClrTypeName(metadataTypeName));

            var behaviorElement = GetOrCreateBehavior(context,
                                                      _reflectionTypeNameCache.GetClrName(behavior.DeclaringType),
                                                      behavior.Name,
                                                      behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                                      fieldType);

            return(behaviorElement);
        }
コード例 #23
0
        private ITestMetadata GetFieldTest(IMetadataField field, IIdentity parentIdentity)
        {
            if (field.Type.NotNull().FullName != MSpecUtility.ItDelegateFullName)
            {
                return(null);
            }

            if (field.GetAttributeData <CompilerGeneratedAttribute>() != null)
            {
                return(null);
            }

            var identity = parentIdentity.CreateChildIdentity(field.Name);
            var text     = field.Name.Replace(oldChar: '_', newChar: ' ');

            return(new MemberTestMetadata(identity, _project, text, field));
        }
コード例 #24
0
    BehaviorSpecificationElement CreateBehaviorSpecification(BehaviorElement behavior,
                                                             IMetadataField behaviorSpecification)
    {
      return GetOrCreateBehaviorSpecification(_provider,
#if RESHARPER_61
                                              _manager, _psiModuleManager, _cacheManager, 
#endif
                                              _project,
                                              behavior,
                                              _projectEnvoy,
#if RESHARPER_61
                                              _reflectionTypeNameCache.GetClrName(behaviorSpecification.DeclaringType),
#else
                                              new ClrTypeName(behaviorSpecification.DeclaringType.FullyQualifiedName), // may work incorrect in ReSharper 6.0
#endif
                                              behaviorSpecification.Name,
                                              behaviorSpecification.IsIgnored());
    }
コード例 #25
0
    public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
    {
      return GetOrCreateContextSpecification(_provider,
#if RESHARPER_61
                                             _manager, _psiModuleManager, _cacheManager, 
#endif
                                             _project,
                                             context,
                                             _projectEnvoy,
#if RESHARPER_61
                                             _reflectionTypeNameCache.GetClrName(specification.DeclaringType),
#else
                                             new ClrTypeName(specification.DeclaringType.FullyQualifiedName), // may work incorrect in ReSharper 6.0
#endif
                                             specification.Name,
                                             specification.DeclaringType.GetTags(),
                                             specification.IsIgnored());
    }
コード例 #26
0
        private IEnumerable <IMetadataField> Flatten(IMetadataField field)
        {
            var metadataClassType = field.Type as IMetadataClassType;
            var metadataTypeInfo  = metadataClassType?.Type;

            if (metadataTypeInfo == null || metadataTypeInfo.FullyQualifiedName != "Machine.Specifications.Behaves_like`1")
            {
                yield return(field);

                yield break;
            }

            var behaviorTypes = metadataClassType.Arguments.Cast <IMetadataClassType>();

            foreach (var nestedField in behaviorTypes.SelectMany(x => x.Type.GetFields().SelectMany(Flatten)))
            {
                yield return(nestedField);
            }
        }
コード例 #27
0
    public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
    {
      var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

      var metadataTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
      var fieldType = new NormalizedTypeName(new ClrTypeName(metadataTypeName));

      var behaviorElement = GetOrCreateBehavior(_provider,
                                                _manager,
                                                _psiModuleManager,
                                                _cacheManager,
                                                _project,
                                                _projectEnvoy,
                                                context,
                                                _reflectionTypeNameCache.GetClrName(behavior.DeclaringType),
                                                behavior.Name,
                                                behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                                fieldType);

      return behaviorElement;
    }
コード例 #28
0
    public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
    {
      var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

      var fullyQualifiedTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
      var typeName = GetNormalizedTypeName(fullyQualifiedTypeName);

      var behaviorElement = new BehaviorElement(_provider,
                                 context,
                                 _projectEnvoy,
                                 behavior.DeclaringType.FullyQualifiedName,
                                 behavior.Name,
                                 behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                 fullyQualifiedTypeName);

      if (!TypeNameCache.ContainsKey(typeName))
      {
        TypeNameCache.Add(typeName, fullyQualifiedTypeName);
      }

      return behaviorElement;
    }
 public MetadataFieldInfoAdapter(IMetadataField field)
 {
     _field = field;
 }
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
     return(GetOrCreateContextSpecification(_provider,
                                            _manager,
                                            _psiModuleManager,
                                            _cacheManager,
                                            _project,
                                            context,
                                            _projectEnvoy,
                                            _reflectionTypeNameCache.GetClrName(specification.DeclaringType),
                                            specification.Name,
                                            specification.IsIgnored()));
 }
 public static IFieldInfo AsFieldInfo(this IMetadataField field)
 {
     return new MetadataFieldInfoAdapter(field);
 }
コード例 #32
0
 public static CommonMember ToCommon(this IMetadataField member)
 {
     return(IntrospectionUtility.Instance.GetCommonMember(member));
 }
コード例 #33
0
        public static IMetadataClassType FirstGenericArgumentClass(this IMetadataField genericField)
        {
            var genericArgument = ((IMetadataClassType)genericField.Type).Arguments.First();

            return(genericArgument as IMetadataClassType);
        }
コード例 #34
0
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
     return(this.GetOrCreateContextSpecification(context,
                                                 this._reflectionTypeNameCache.GetClrName(specification.DeclaringType),
                                                 specification.Name,
                                                 specification.IsIgnored()));
 }
コード例 #35
0
        public static IMetadataTypeInfo GetFirstGenericArgument(this IMetadataField genericField)
        {
            var genericArgument = ((IMetadataClassType)genericField.Type).Arguments.First();

            return(((IMetadataClassType)genericArgument).Type);
        }
コード例 #36
0
        public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
        {
            return(GetOrCreateContextSpecification(_provider,
#if RESHARPER_61
                                                   _manager, _psiModuleManager, _cacheManager,
#endif
                                                   _project,
                                                   context,
                                                   _projectEnvoy,
                                                   specification.DeclaringType.FullyQualifiedName,
                                                   specification.Name,
                                                   specification.DeclaringType.GetTags(),
                                                   specification.IsIgnored()));
        }
コード例 #37
0
 public ContextSpecificationElement CreateContextSpecification(ContextElement context, IMetadataField specification)
 {
     return(new ContextSpecificationElement(_provider,
                                            context,
                                            _project,
                                            specification.DeclaringType.FullyQualifiedName,
                                            specification.Name,
                                            specification.IsIgnored()));
 }
コード例 #38
0
    public BehaviorElement CreateBehavior(ContextElement context, IMetadataField behavior)
    {
      var typeContainingBehaviorSpecifications = behavior.GetFirstGenericArgument();

      var fullyQualifiedTypeName = behavior.FirstGenericArgumentClass().FullyQualifiedName();
      var typeName = GetNormalizedTypeName(fullyQualifiedTypeName);

      var behaviorElement = GetOrCreateBehavior(_provider,
#if RESHARPER_61
                                                _manager, _psiModuleManager, _cacheManager, 
#endif
                                                _project,
                                                _projectEnvoy,
                                                context,
#if RESHARPER_61
                                                _reflectionTypeNameCache.GetClrName(behavior.DeclaringType),
#else
                                                new ClrTypeName(behavior.DeclaringType.FullyQualifiedName), // may work incorrect in ReSharper 6.0
#endif
                                                behavior.Name,
                                                behavior.IsIgnored() || typeContainingBehaviorSpecifications.IsIgnored(),
                                                fullyQualifiedTypeName);

      if (!TypeNameCache.ContainsKey(typeName))
      {
        TypeNameCache.Add(typeName, fullyQualifiedTypeName);
      }

      return behaviorElement;
    }
コード例 #39
0
 public CommonMember GetCommonMember(IMetadataField member)
 {
     return(GetCommonMember(member, member.Type.NotNull()));
 }