public void WhenExtensionStringBuilder_Works() { string codeInFile = @"Imports System Imports System.Text Imports System.Runtime.CompilerServices Module StringBuilderExtensions <Extension()> Public Sub Test(ByVal builder as StringBuilder) End Sub End Module Public Module Module1 Public Sub Main() Dim sb As StringBuilder = New StringBuilder sb. End Sub End Module"; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile, codeInFile.LastIndexOf('.') + 1); Assert.IsNotEmpty(autoCompleteItems); Assert.IsNotNull(autoCompleteItems.FirstOrDefault(a => a.Name == "Test" && a.Type == "void")); }
public void Constructor_Works() { string codeInFile = @"Imports System Public Class Program ''' <summary> ''' Program constructor ''' </summary> ''' <param name=""test"">Test parameter</param> Public Sub New(ByVal test as String) End Sub Public Sub Main() Dim sb as Program = New Program(" ; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); var programConstructor = autoCompleteItems.FirstOrDefault(a => a.Name == "Program"); Assert.IsNotNull(programConstructor); Assert.AreEqual(programConstructor.Description, "Program constructor"); }
public void NamespaceSystem_Works() { string codeInFile = @"Imports System Imports System."; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); }
public void Project_Works() { var source = @"Imports System Public Class Dog ''' <summary> ''' Dog name ''' </summary> Public property Name As String End Class"; var sourceMain = @"Imports System Public Class Program Public Shared Sub Main() { Dim dog as Dog = New Dog() dog. End Sub End Class"; var service = new VBNetLanguageService(); var files = new Dictionary <string, string>() { { "dog.vb", source }, { "main.vb", sourceMain } }; var project = service.GetProject(files); Assert.IsNotNull(project); int dotIndex = sourceMain.IndexOf(".") + 1; var autoCompleteItems = service.GetAutoCompleteItems(project, "main.vb", dotIndex); Assert.IsTrue(autoCompleteItems.Any()); var propertyName = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(propertyName, "property should be returned from language service"); Assert.AreEqual("Name", propertyName.Name); Assert.AreEqual("String", propertyName.Type); Assert.IsFalse(propertyName.IsStatic); Assert.IsFalse(propertyName.IsGeneric); Assert.IsFalse(propertyName.IsExtension); Assert.AreEqual(AutoCompleteItemType.Property, propertyName.ItemType); Assert.AreEqual("Dog name", propertyName.Description); }
public void Project_Changed_Works() { var service = new VBNetLanguageService(); var currentPath = AssemblyHelper.GetAssemblyDirectory(typeof(CSharpProjectFileTests).Assembly); currentPath = Path.Combine(currentPath, "Samples", "VBNet"); string dogMainPath = Path.Combine(currentPath, "DogMain.vb"); string dogPath = Path.Combine(currentPath, "DogOneProperty.vb"); string dogNewPath = Path.Combine(currentPath, "DogTwoProperties.vb"); var files = new List <string>() { dogMainPath, dogPath }; var project = service.GetProject(files); Assert.IsNotNull(project); var sourceMain = project.Sources[dogMainPath]; int dotIndex = sourceMain.IndexOf(".") + 1; var autoCompleteItems = service.GetAutoCompleteItems(project, dogMainPath, dotIndex); Assert.IsTrue(autoCompleteItems.Any()); var property = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(property, "property Name should be returned from language service"); var newDogContent = File.ReadAllText(dogNewPath); project.ReplaceSourceFile(dogPath, newDogContent); autoCompleteItems = service.GetAutoCompleteItems(project, dogMainPath, dotIndex); property = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(property, "property Name should be returned from language service"); property = autoCompleteItems.FirstOrDefault( p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Birthdate"); Assert.IsNotNull(property, "property Birthdate should be returned from language service"); }
public void WhenStringBuilder_Works() { string codeInFile = @"Imports System Imports System.Text Public Module Module1 Public Sub Main() Dim sb As StringBuilder = New StringBuilder sb."; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); }
public void WhenStringBuilder_FullCode_Works() { string codeInFile = @"Imports System Imports System.Text Public Module Module1 Public Sub Main() Dim sb As StringBuilder = New StringBuilder sb. End Sub End Module"; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile, codeInFile.LastIndexOf('.') + 1); Assert.IsNotEmpty(autoCompleteItems); Assert.IsNotEmpty(autoCompleteItems.Where(a => a.Name == "Append")); Assert.IsNotEmpty(autoCompleteItems.Where(a => a.Name == "AppendLine")); Assert.IsNotEmpty(autoCompleteItems.Where(a => a.Name == "Clear")); }
public void AddReferenceWorks() { var sourceMain = @"Imports System Imports System.Configuration Public Class Program Public Shared Sub() ConfigurationManager.AppSettings. End Sub End Class"; var service = new VBNetLanguageService(); var files = new Dictionary <string, string>() { { "main.vb", sourceMain } }; var project = service.GetProject(files); Assert.IsNotNull(project); var configIdentity = project.ReferencedAssemblies.FirstOrDefault(i => i.Name == "System.Configuration"); Assert.IsNull(configIdentity); project.AddReference("System.Configuration"); configIdentity = project.ReferencedAssemblies.FirstOrDefault(i => i.Name == "System.Configuration"); Assert.IsNotNull(configIdentity); int dotIndex = sourceMain.LastIndexOf(".") + 1; var autoCompleteItems = service.GetAutoCompleteItems(project, "main.vb", dotIndex); Assert.IsTrue(autoCompleteItems.Any()); project.RemoveReference("System.Configuration"); configIdentity = project.ReferencedAssemblies.FirstOrDefault(i => i.Name == "System.Configuration"); Assert.IsNull(configIdentity); }
public void Project_Works() { var service = new VBNetLanguageService(); var currentPath = AssemblyHelper.GetAssemblyDirectory(typeof(CSharpProjectFileTests).Assembly); currentPath = Path.Combine(currentPath, "Samples", "VBNet"); string dogMainPath = Path.Combine(currentPath, "DogMain.vb"); string dogPath = Path.Combine(currentPath, "DogOneProperty.vb"); var files = new List <string>() { dogMainPath, dogPath }; var project = service.GetProject(files); Assert.IsNotNull(project); var sourceMain = project.Sources[dogMainPath]; int dotIndex = sourceMain.IndexOf(".") + 1; var autoCompleteItems = service.GetAutoCompleteItems(project, dogMainPath, dotIndex); Assert.IsTrue(autoCompleteItems.Any()); var propertyName = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(propertyName, "property should be returned from language service"); Assert.AreEqual("Name", propertyName.Name); Assert.AreEqual("String", propertyName.Type); Assert.IsFalse(propertyName.IsStatic); Assert.IsFalse(propertyName.IsGeneric); Assert.IsFalse(propertyName.IsExtension); Assert.AreEqual(AutoCompleteItemType.Property, propertyName.ItemType); Assert.AreEqual("Dog name", propertyName.Description); }
public void NewStaticMethod_InNonStatic_Ignored() { string codeInFile = @"Imports System Public Class Program Public Sub TestMethod() End Sub Public Shared Sub Main() Program." ; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); var method = autoCompleteItems.FirstOrDefault( p => p.ItemType == AutoCompleteItemType.Method && p.Name == "TestMethod"); Assert.IsNull(method, "Method TestMethod shouldn't be present"); }
public void DisabledDocumentationDoesntDisplay() { string codeInFile = @"Imports System Imports System.Text Public Module Module1 Public Sub Main() Dim sb As StringBuilder = New StringBuilder sb."; var service = new VBNetLanguageService(null, new LanguageServiceOptions() { ParseDocumenation = false }); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); var appendMethod = autoCompleteItems.FirstOrDefault(a => a.Name == "Append"); Assert.IsNotNull(appendMethod); Assert.IsNullOrEmpty(appendMethod.Description); }
public void NewMethod_Works() { string codeInFile = @"Imports System Public Class Program Public Sub TestMethod() End Sub Public Sub Main() Me." ; var service = new VBNetLanguageService(); var autoCompleteItems = service.GetAutoCompleteItems(codeInFile); Assert.IsNotEmpty(autoCompleteItems); var method = autoCompleteItems.FirstOrDefault( p => p.ItemType == AutoCompleteItemType.Method && p.Name == "TestMethod"); Assert.IsNotNull(method, "Method TestMethod should be present"); Assert.AreEqual("void", method.Type); }
public void Project_Changed_Works() { var source = @"Imports System Public Class Dog ''' <summary> ''' Dog name ''' </summary> Public property Name As String End Class"; var sourceMain = @"Imports System Public Class Program Public Shared Sub Main() { Dim dog as Dog = New Dog() dog. End Sub End Class"; var service = new VBNetLanguageService(); var files = new Dictionary <string, string>() { { "dog.vb", source }, { "main.vb", sourceMain } }; var project = service.GetProject(files); Assert.IsNotNull(project); int dotIndex = sourceMain.IndexOf(".") + 1; var autoCompleteItems = service.GetAutoCompleteItems(project, "main.vb", dotIndex); Assert.IsTrue(autoCompleteItems.Any()); var property = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(property, "property should be returned from language service"); source = @"Imports System Public Class Dog ''' <summary> ''' Dog name ''' </summary> Public Property Name as String Public Property Birthdate As DateTime End Class"; project.ReplaceSourceFile("dog.vb", source); autoCompleteItems = service.GetAutoCompleteItems(project, "main.vb", dotIndex); Assert.IsTrue(autoCompleteItems.Any()); property = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Name"); Assert.IsNotNull(property, "property Name should be returned from language service"); property = autoCompleteItems.FirstOrDefault(p => p.ItemType == AutoCompleteItemType.Property && p.Name == "Birthdate"); Assert.IsNotNull(property, "property Birthdate should be returned from language service"); }