public void InternalConstruction_Assembly()
        {
            IFile fileSystem = MockRepository.GenerateMock <IFile>();
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            string[] expectedDirectoryNames = { @"C:\a", @"C:\a\b", @"C:\a\b\c", @"C:\a\b\c\d" };
            string   expectedFileName       = Path.GetFileName(MscorlibXml);

            for (int i = 0; i < expectedDirectoryNames.Length - 1; ++i)
            {
                fileSystem.Expect(fs => fs.Exists(Path.Combine(expectedDirectoryNames[i], expectedFileName)))
                .Return(false);
            }

            string expectedFullPath = Path.Combine(expectedDirectoryNames[expectedDirectoryNames.Length - 1], expectedFileName);

            fileSystem.Expect(fs => fs.Exists(expectedFullPath)).Return(true);
            createPolicy.Expect(cp => cp(expectedFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);
            XmlDocCommentReader         reader   = new XmlDocCommentReader(typeof(int).Assembly, settings, fileSystem, createPolicy);

            Assert.That(reader.FileProxy, Is.SameAs(fileSystem));
            Assert.That(reader.FullPath, Is.EqualTo(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            fileSystem.VerifyAllExpectations();
            createPolicy.VerifyAllExpectations();
        }
 public void Construction_FullPath_FileNotFound()
 {
     Assert.Throws <FileNotFoundException>(() =>
     {
         XmlDocCommentReader reader = new XmlDocCommentReader(Path.GetRandomFileName());
     });
 }
Esempio n. 3
0
 /// <summary>
 /// Creates a new instances that reads comments from the specified XML Doc comments file.
 /// </summary>
 /// <param name="docCommentsFullPath">The full path of the XML Doc comments file.</param>
 public JoltCommentReader(string docCommentsFullPath)
 {
     if (docCommentsFullPath == null)
     {
         throw new ArgumentNullException(nameof(docCommentsFullPath));
     }
     _proxy = new XmlDocCommentReader(docCommentsFullPath);
 }
        public void Construction_Assembly_DefaultSettings()
        {
            XmlDocCommentReader reader = new XmlDocCommentReader(typeof(int).Assembly);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.EqualTo(MscorlibXml));
            Assert.That(reader.ReadPolicy, Is.InstanceOf <DefaultXDCReadPolicy>());
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));
        }
        public string GetMethodComments(IMethodSymbol methodSymbol)
        {
            string xmlComments = string.Empty;

            try
            {
                if (methodSymbol.ReceiverType != null && methodSymbol.ReceiverType.IsType)
                {
                    ITypeSymbol receiverType = methodSymbol.ReceiverType;
                    //var containingAssembly = new AssemblyLoader().GetAssembly(methodSymbol.ContainingAssembly.Name);
                    //Type myType1 = containingAssembly.GetType(receiverType.ToString());
                    new TypeHelper().TryFindType(receiverType.ToMetadataName(), out var myType1);
                    var containingAssembly = myType1.Assembly;

                    var parameterTypes = new List <Type>();
                    foreach (var p in methodSymbol.Parameters)
                    {
                        Assembly parmContainingAssembly = new AssemblyLoader().GetAssembly(p.Type.ContainingAssembly.Name);
                        Type     parmType = parmContainingAssembly.GetType(p.Type.ToMetadataName());
                        parameterTypes.Add(parmType);
                    }

                    var reader = new XmlDocCommentReader(containingAssembly);

                    MethodInfo methodInfo = methodSymbol.IsGenericMethod ?
                                            myType1.GetGenericMethod(methodSymbol.Name, parameterTypes.ToArray())
                        : myType1.GetMethod(methodSymbol.Name, parameterTypes.ToArray());

                    if (methodSymbol.IsExtensionMethod && methodInfo == null)
                    {
                        var extensionsMethods = (from type in containingAssembly.GetTypes()
                                                 where type.IsSealed && !type.IsGenericType && !type.IsNested
                                                 from method in type.GetMethods(BindingFlags.Static
                                                                                | BindingFlags.Public | BindingFlags.NonPublic)
                                                 where method.IsDefined(typeof(ExtensionAttribute), false)
                                                 where method.GetParameters()[0].ParameterType.Name == methodSymbol.ReceiverType.BaseType.Name &&
                                                 methodSymbol.MetadataName == method.Name
                                                 select method).ToList();
                        methodInfo = extensionsMethods.Any() ? extensionsMethods.First() : null;
                    }
                    var test = reader.GetComments(methodInfo);

                    if (test != null)
                    {
                        xmlComments = test.Element("summary").Value.TrimStart(new[] { ' ', '\t', '\n' }).Replace(Environment.NewLine, " ");
                        xmlComments = Regex.Replace(xmlComments, @"\s+", " ");
                    }
                }
            }
            catch (Exception e)
            {
                xmlComments = e.Message;
            }

            return(xmlComments);
        }
        public void Construction_FullPath()
        {
            string expectedFullPath    = Path.Combine(TestDirectory, "Rhino.Mocks.xml");
            XmlDocCommentReader reader = new XmlDocCommentReader(expectedFullPath);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.SameAs(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.InstanceOf <DefaultXDCReadPolicy>());
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));
        }
        private static XmlDocCommentReader GetCommentReader(Assembly assembly)
        {
            if (_commentReaders.TryGetValue(assembly.FullName, out var reader))
            {
                return(reader);
            }

            reader = new XmlDocCommentReader(assembly);
            _commentReaders.Add(assembly.FullName, reader);

            return(reader);
        }
        public void Construction_Assembly_ConfigFileSettings()
        {
            WithConfigurationFile(delegate
            {
                XmlDocCommentReader reader = new XmlDocCommentReader(typeof(Mocker).Assembly);

                Assert.That(reader.FileProxy, Is.InstanceOf<FileProxy>());
                Assert.That(reader.FullPath, Is.EqualTo(Path.Combine(Environment.CurrentDirectory, "Rhino.Mocks.xml")));
                Assert.That(reader.ReadPolicy, Is.InstanceOf<DefaultXDCReadPolicy>());
                Assert.That(
                    reader.Settings.DirectoryNames.Cast<XmlDocCommentDirectoryElement>().Select(s => s.Name),
                    Is.EqualTo(new[] { "." }));
            });
        }
        public void Construction_Assembly_ConfigFileSettings()
        {
            WithConfigurationFile(delegate
            {
                XmlDocCommentReader reader = new XmlDocCommentReader(typeof(MockRepository).Assembly);

                Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
                Assert.That(reader.FullPath, Is.EqualTo(Path.Combine(TestDirectory, "Rhino.Mocks.xml")));
                Assert.That(reader.ReadPolicy, Is.InstanceOf <DefaultXDCReadPolicy>());
                Assert.That(
                    reader.Settings.DirectoryNames.Cast <XmlDocCommentDirectoryElement>().Select(s => s.Name),
                    Is.EqualTo(new[] { "." }));
            });
        }
        public void Construction_FullPath_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            string expectedDocCommentsFullPath = Path.Combine(TestDirectory, "Rhino.Mocks.xml");

            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReader reader = new XmlDocCommentReader(expectedDocCommentsFullPath, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.SameAs(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));

            createPolicy.VerifyAllExpectations();
        }
        public void InternalConstruction_FullPath()
        {
            IFile fileProxy = MockRepository.GenerateMock <IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            string expectedFullPath = Path.GetRandomFileName();

            fileProxy.Expect(fp => fp.Exists(expectedFullPath)).Return(true);

            XmlDocCommentReader reader = new XmlDocCommentReader(expectedFullPath, fileProxy, readPolicy);

            Assert.That(reader.FileProxy, Is.SameAs(fileProxy));
            Assert.That(reader.FullPath, Is.SameAs(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));

            fileProxy.VerifyAllExpectations();
        }
        public void GetComments_Event()
        {
            IFile fileProxy = MockRepository.GenerateMock <IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock <IXmlDocCommentReadPolicy>();

            EventInfo expectedEvent    = typeof(Console).GetEvent("CancelKeyPress");
            XElement  expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedEvent))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);

            Assert.That(reader.GetComments(expectedEvent), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
        public void GetComments_Field()
        {
            IFile fileProxy = MockRepository.GenerateMock <IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock <IXmlDocCommentReadPolicy>();

            FieldInfo expectedField    = typeof(Int32).GetField("MaxValue", BindingFlags.Public | BindingFlags.Static);
            XElement  expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedField))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);

            Assert.That(reader.GetComments(expectedField), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
        public void GetComments_Property()
        {
            IFile fileProxy = MockRepository.GenerateMock <IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock <IXmlDocCommentReadPolicy>();

            PropertyInfo expectedProperty = typeof(Array).GetProperty("Length");
            XElement     expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedProperty))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);

            Assert.That(reader.GetComments(expectedProperty), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
        public void GetComments_Method()
        {
            IFile fileProxy = MockRepository.GenerateMock <IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock <IXmlDocCommentReadPolicy>();

            MethodInfo expectedMethod   = MethodInfo.GetCurrentMethod() as MethodInfo;
            XElement   expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedMethod))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);

            Assert.That(reader.GetComments(expectedMethod), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
Esempio n. 16
0
        public string GetMethodComments(IMethodSymbol methodSymbol)
        {
            string xmlComments = String.Empty;

            try
            {
                if (methodSymbol.ReceiverType != null && methodSymbol.ReceiverType.IsType)
                {
                    ITypeSymbol receiverType = methodSymbol.ReceiverType;
                    //var containingAssembly = new AssemblyLoader().GetAssembly(methodSymbol.ContainingAssembly.Name);
                    //Type myType1 = containingAssembly.GetType(receiverType.ToString());
                    Type myType1;
                    new TypeHelper().TryFindType(receiverType.ToMetadataName(), out myType1);
                    var containingAssembly = myType1.Assembly;

                    var parameterTypes = new List <Type>();
                    foreach (var p in methodSymbol.Parameters)
                    {
                        Assembly parmContainingAssembly = new AssemblyLoader().GetAssembly(p.Type.ContainingAssembly.Name);
                        Type     parmType = parmContainingAssembly.GetType(p.Type.ToMetadataName());
                        parameterTypes.Add(parmType);
                    }

                    var reader = new XmlDocCommentReader(containingAssembly);

                    MethodInfo methodInfo = methodSymbol.IsGenericMethod ?
                                            myType1.GetGenericMethod(methodSymbol.Name, parameterTypes.ToArray())
                        : myType1.GetMethod(methodSymbol.Name, parameterTypes.ToArray());
                    var test = reader.GetComments(methodInfo);

                    xmlComments = test.Element("summary").Value.TrimStart(new[] { ' ', '\t', '\n' }).Replace(System.Environment.NewLine, " ");
                    xmlComments = Regex.Replace(xmlComments, @"\s+", " ");
                }
            }
            catch (Exception e)
            {
                xmlComments = e.Message;
            }

            return(xmlComments);
        }
        public void Construction_Assembly_ExplicitSettings_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock <CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy   = MockRepository.GenerateStub <IXmlDocCommentReadPolicy>();

            // Expectations.
            // The read policy is created via the factory method.
            string expectedDocCommentsFullPath = Path.Combine(TestDirectory, "Rhino.Mocks.xml");

            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(new string[] { TestDirectory });
            XmlDocCommentReader         reader   = new XmlDocCommentReader(typeof(MockRepository).Assembly, settings, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf <FileProxy>());
            Assert.That(reader.FullPath, Is.EqualTo(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            createPolicy.VerifyAllExpectations();
        }
Esempio n. 18
0
        public Models.Assembly Parse(string assemblyFile, bool bParseNamespace = true)
        {
            try
            {
                var namespaces = new List <Namespace>();
                var b          = File.ReadAllBytes(assemblyFile);
                var assembly   = Assembly.Load(b);
                //var assembly = Assembly.LoadFile(assemblyFile);
                if (bParseNamespace)
                {
                    _reader = new XmlDocCommentReader(assemblyFile.Replace(".dll", ".xml"));
                    FindTypes(assembly, namespaces);

                    namespaces = namespaces.OrderBy(o => o.Name).ToList();

                    foreach (var nameSpace in namespaces)
                    {
                        nameSpace.Classes = nameSpace.Classes.OrderBy(c => c.Name).ToList();
                    }
                }

                var a = new Models.Assembly
                {
                    Id         = assembly.ManifestModule.ModuleVersionId,
                    Name       = assembly.GetName().Name,
                    FullName   = assembly.FullName,
                    Namespaces = namespaces
                };
                return(a);
            }
            catch (Exception ex)
            {
                Trace.TraceError("DLL {0} : Parse Problem. {1} => {2}", assemblyFile, ex.Message, ex.Source);
                return(null);
            }
        }
        public void InternalConstruction_Assembly()
        {
            IFile fileSystem = MockRepository.GenerateMock<IFile>();
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock<CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateStub<IXmlDocCommentReadPolicy>();

            string[] expectedDirectoryNames = { @"C:\a", @"C:\a\b", @"C:\a\b\c", @"C:\a\b\c\d" };
            string expectedFileName = Path.GetFileName(MscorlibXml);
            for (int i = 0; i < expectedDirectoryNames.Length - 1; ++i)
            {
                fileSystem.Expect(fs => fs.Exists(Path.Combine(expectedDirectoryNames[i], expectedFileName)))
                    .Return(false);
            }

            string expectedFullPath = Path.Combine(expectedDirectoryNames[expectedDirectoryNames.Length - 1], expectedFileName);
            fileSystem.Expect(fs => fs.Exists(expectedFullPath)).Return(true);
            createPolicy.Expect(cp => cp(expectedFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(expectedDirectoryNames);
            XmlDocCommentReader reader = new XmlDocCommentReader(typeof(int).Assembly, settings, fileSystem, createPolicy);

            Assert.That(reader.FileProxy, Is.SameAs(fileSystem));
            Assert.That(reader.FullPath, Is.EqualTo(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            fileSystem.VerifyAllExpectations();
            createPolicy.VerifyAllExpectations();
        }
        public void Construction_FullPath_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock<CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateStub<IXmlDocCommentReadPolicy>();

            string expectedDocCommentsFullPath = Path.Combine(Environment.CurrentDirectory, "Rhino.Mocks.xml");
            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReader reader = new XmlDocCommentReader(expectedDocCommentsFullPath, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf<FileProxy>());
            Assert.That(reader.FullPath, Is.SameAs(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));

            createPolicy.VerifyAllExpectations();
        }
        public void InternalConstruction_FullPath()
        {
            IFile fileProxy = MockRepository.GenerateMock<IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateStub<IXmlDocCommentReadPolicy>();

            string expectedFullPath = Path.GetRandomFileName();
            fileProxy.Expect(fp => fp.Exists(expectedFullPath)).Return(true);

            XmlDocCommentReader reader = new XmlDocCommentReader(expectedFullPath, fileProxy, readPolicy);

            Assert.That(reader.FileProxy, Is.SameAs(fileProxy));
            Assert.That(reader.FullPath, Is.SameAs(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));

            fileProxy.VerifyAllExpectations();
        }
        public void Construction_Assembly_ExplicitSettings_ReadPolicy()
        {
            CreateReadPolicyDelegate createPolicy = MockRepository.GenerateMock<CreateReadPolicyDelegate>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateStub<IXmlDocCommentReadPolicy>();

            // Expectations.
            // The read policy is created via the factory method.
            string expectedDocCommentsFullPath = Path.Combine(Environment.CurrentDirectory, "Rhino.Mocks.xml");
            createPolicy.Expect(cp => cp(expectedDocCommentsFullPath)).Return(readPolicy);

            XmlDocCommentReaderSettings settings = new XmlDocCommentReaderSettings(new string[] { Environment.CurrentDirectory });
            XmlDocCommentReader reader = new XmlDocCommentReader(typeof(Mocker).Assembly, settings, createPolicy);

            Assert.That(reader.FileProxy, Is.InstanceOf<FileProxy>());
            Assert.That(reader.FullPath, Is.EqualTo(expectedDocCommentsFullPath));
            Assert.That(reader.ReadPolicy, Is.SameAs(readPolicy));
            Assert.That(reader.Settings, Is.SameAs(settings));

            createPolicy.VerifyAllExpectations();
        }
        public void Construction_Assembly_DefaultSettings()
        {
            XmlDocCommentReader reader = new XmlDocCommentReader(typeof(int).Assembly);

            Assert.That(reader.FileProxy, Is.InstanceOf<FileProxy>());
            Assert.That(reader.FullPath, Is.EqualTo(MscorlibXml));
            Assert.That(reader.ReadPolicy, Is.InstanceOf<DefaultXDCReadPolicy>());
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));
        }
 public void Construction_FullPath_FileNotFound()
 {
     XmlDocCommentReader reader = new XmlDocCommentReader(Path.GetRandomFileName());
 }
        public void GetComments_Event()
        {
            IFile fileProxy = MockRepository.GenerateMock<IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock<IXmlDocCommentReadPolicy>();

            EventInfo expectedEvent = typeof(Console).GetEvent("CancelKeyPress");
            XElement expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedEvent))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);
            Assert.That(reader.GetComments(expectedEvent), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
        public void Construction_FullPath()
        {
            string expectedFullPath = Path.Combine(Environment.CurrentDirectory, "Rhino.Mocks.xml");
            XmlDocCommentReader reader = new XmlDocCommentReader(expectedFullPath);

            Assert.That(reader.FileProxy, Is.InstanceOf<FileProxy>());
            Assert.That(reader.FullPath, Is.SameAs(expectedFullPath));
            Assert.That(reader.ReadPolicy, Is.InstanceOf<DefaultXDCReadPolicy>());
            Assert.That(reader.Settings, Is.SameAs(XmlDocCommentReaderSettings.Default));
        }
        public void GetComments_Type()
        {
            IFile fileProxy = MockRepository.GenerateMock<IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock<IXmlDocCommentReadPolicy>();

            Type expectedType = GetType();
            XElement expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedType))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);
            Assert.That(reader.GetComments(expectedType), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }
 public void Construction_FullPath_FileNotFound()
 {
     XmlDocCommentReader reader = new XmlDocCommentReader(Path.GetRandomFileName());
 }
        public void GetComments_Field()
        {
            IFile fileProxy = MockRepository.GenerateMock<IFile>();
            IXmlDocCommentReadPolicy readPolicy = MockRepository.GenerateMock<IXmlDocCommentReadPolicy>();

            FieldInfo expectedField = typeof(Int32).GetField("MaxValue", BindingFlags.Public | BindingFlags.Static);
            XElement expectedComments = new XElement("comments");

            fileProxy.Expect(fp => fp.Exists(String.Empty)).Return(true);
            readPolicy.Expect(rp => rp.ReadMember(Convert.ToXmlDocCommentMember(expectedField))).Return(expectedComments);

            XmlDocCommentReader reader = new XmlDocCommentReader(String.Empty, fileProxy, readPolicy);
            Assert.That(reader.GetComments(expectedField), Is.SameAs(expectedComments));

            fileProxy.VerifyAllExpectations();
            readPolicy.VerifyAllExpectations();
        }