Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 10
0
        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");
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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");
        }