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()); }); }
/// <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(); }
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(); }
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 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(); }