public void CodeElements_OneNamespaceInProjectWithTwoPartsToName_ReturnsOneCodeNamespaceItemWithFirstPartOfNamespaceAsName() { CreateCodeModel(); helper.AddNamespaceCompletionEntryInNamespace(String.Empty, "First"); helper.AddNamespaceCompletionEntryInNamespace("First", "Second"); global::EnvDTE.CodeElements codeElements = codeModel.CodeElements; global::EnvDTE.CodeNamespace codeNamespace = codeElements.FirstCodeNamespaceOrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("First", codeNamespace.FullName); Assert.AreEqual("First", codeNamespace.Name); }
public void ImplementedInterfaces_ClassImplementsIDisposable_ReturnsCodeInterfaceForIDisposable() { CreateClass( "using System;\r\n" + "class MyClass : IDisposable {}"); global::EnvDTE.CodeElements codeElements = codeClass.ImplementedInterfaces; CodeInterface codeInterface = codeElements.FirstCodeInterfaceOrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("System.IDisposable", codeInterface.FullName); }
public void BaseTypes_ClassBaseTypeIsSystemObject_ReturnsSystemObject() { CreateProjectContent(); CreatePublicClass("MyClass"); AddBaseTypeToClass("System.Object"); global::EnvDTE.CodeElements codeElements = codeClass.Bases; CodeClass2 baseClass = codeElements.FirstCodeClass2OrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("System.Object", baseClass.FullName); Assert.AreEqual("Object", baseClass.Name); }
public void Arguments_AttributeHasOneStringNamedArgument_ReturnsOneAttributeArgumentWithName() { CreateMSBuildAttribute("Test.MyAttribute"); helper.AddNamedArgument("Name", "StringValue"); CreateAttribute(); global::EnvDTE.CodeElements args = codeAttribute.Arguments; CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault(); Assert.AreEqual("Name", attributeArg.Name); Assert.AreEqual("\"StringValue\"", attributeArg.Value); }
public void Attributes_PropertyHasOneAttribute_ReturnsOneAttribute() { helper.CreateProperty("MyProperty"); helper.AddAttribute("Tests.TestAttribute", "TestAttribute"); CreateCodeProperty2(); global::EnvDTE.CodeElements attributes = property.Attributes; CodeAttribute2 attribute = attributes.Item(1) as CodeAttribute2; Assert.AreEqual(1, attributes.Count); Assert.AreEqual("Tests.TestAttribute", attribute.FullName); }
public void FileCodeModel_GetCodeElementsFromFileCodeModelForProjectFile_FileServicePassedToFileCodeModel() { CreateProjectItems(); msbuildProject.FileName = @"d:\projects\MyProject\MyProject.csproj"; msbuildProject.AddFile(@"src\program.cs"); global::EnvDTE.ProjectItem directoryItem = projectItems.Item("src"); global::EnvDTE.ProjectItem fileItem = directoryItem.ProjectItems.Item("program.cs"); global::EnvDTE.CodeElements codeElements = fileItem.FileCodeModel.CodeElements; Assert.AreEqual(@"d:\projects\MyProject\src\program.cs", fakeFileService.FileNamePassedToGetCompilationUnit); Assert.AreEqual(0, codeElements.Count); }
public void Parameters_PropertyIsIndexerWithOneParameter_ReturnsOneParameter() { CreateCodeProperty2( "class MyClass {\r\n" + " public int this[int item] { get { return 0; } }\r\n" + "}"); global::EnvDTE.CodeElements parameters = property.Parameters; CodeParameter parameter = parameters.FirstCodeParameterOrDefault(); Assert.AreEqual(1, parameters.Count); Assert.AreEqual("item", parameter.Name); }
public void Attributes_ClassHasOneAttribute_ReturnsOneAttribute() { CreateProjectContent(); CreateClass("TestClass"); AddAttributeToClass("TestAttribute"); CreateCodeType(); global::EnvDTE.CodeElements attributes = codeType.Attributes; CodeAttribute2 attribute = attributes.Item(1) as CodeAttribute2; Assert.AreEqual(1, attributes.Count); Assert.AreEqual("Test", attribute.Name); }
public void Members_NamespaceHasOneChildNamespace_ReturnsOneChildNamespace() { CreateProjectContent(); helper.AddNamespaceCompletionEntryInNamespace("First", "Second"); CreateCodeNamespace("First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace childNamespace = members.FirstCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", childNamespace.Name); Assert.AreEqual("First.Second", childNamespace.FullName); }
public void Members_ClassHasOneField_ReturnsOneField() { CreateClass( "public class MyClass {\r\n" + " public int MyField;\r\n" + "}"); global::EnvDTE.CodeElements codeElements = codeClass.Members; CodeVariable codeVariable = codeElements.FirstCodeVariableOrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("MyField", codeVariable.Name); }
public void Members_NamespaceHasOneChildNamespace_ReturnsOneChildNamespace() { string code = "namespace First.Second {}"; CreateCodeNamespace(code, "First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace childNamespace = members.FirstCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", childNamespace.Name); Assert.AreEqual("First.Second", childNamespace.FullName); }
public void Members_ClassHasOneProperty_ReturnsOneProperty() { CreateClass( "public class MyClass {\r\n" + " public int MyProperty { get; set; }\r\n" + "}"); global::EnvDTE.CodeElements codeElements = codeClass.Members; CodeProperty2 codeProperty = codeElements.FirstCodeProperty2OrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("MyProperty", codeProperty.Name); }
public void Members_ClassHasOneMethod_ReturnsOneMethod() { CreateClass( "public class MyClass {\r\n" + " public void MyMethod() {}\r\n" + "}"); global::EnvDTE.CodeElements codeElements = codeClass.Members; CodeFunction2 codeFunction = codeElements.FirstCodeFunction2OrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("MyMethod", codeFunction.Name); }
public void ImplementedInterfaces_ClassImplementsGenericICollectionOfString_ReturnsCodeInterfaceForICollection() { CreateClass( "using System;\r\n" + "using System.Collections.Generic;\r\n" + "class MyClass : ICollection<string> {}"); global::EnvDTE.CodeElements codeElements = codeClass.ImplementedInterfaces; CodeInterface codeInterface = codeElements.FirstCodeInterfaceOrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("System.Collections.Generic.ICollection<System.String>", codeInterface.FullName); }
public void Arguments_AttributeHasOneStringPositionalArgument_ReturnsOneAttributeArgumentWithNoName() { CreateMSBuildAttribute("Test.MyAttribute"); helper.AddPositionalArguments("StringValue"); CreateAttribute(); global::EnvDTE.CodeElements args = codeAttribute.Arguments; CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault(); Assert.AreEqual(1, args.Count); Assert.AreEqual(String.Empty, attributeArg.Name); Assert.AreEqual("\"StringValue\"", attributeArg.Value); }
public void Members_NamespaceHasOneClass_ReturnsOneClass() { string code = "namespace Tests {\r\n" + " public class MyClass {}\r\n" + "}"; CreateCodeNamespace(code, "Tests"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeClass2 codeClass = members.FirstCodeClass2OrDefault(); Assert.AreEqual(1, members.Count); Assert.AreEqual("Tests.MyClass", codeClass.FullName); }
public void Attributes_ParameterHasOneAttribute_ReturnsOneAttribute() { CreateParameter( "using System;\r\n" + "public class MyClass {\r\n" + " public void MyMethod([Obsolete] int parameter) {}\r\n" + "}"); global::EnvDTE.CodeElements attributes = parameter.Attributes; CodeAttribute2 attribute = parameter.Attributes.FirstCodeAttribute2OrDefault(); Assert.AreEqual(1, attributes.Count); Assert.AreEqual("System.ObsoleteAttribute", attribute.FullName); }
public void FileCodeModel_GetCodeElementsFromFileCodeModelForProjectFile_FileServicePassedToFileCodeModel() { CreateProjectItems(@"d:\projects\MyProject\MyProject.csproj"); AddCompilationUnit(); msbuildProject.AddFile(@"src\program.cs"); global::EnvDTE.ProjectItem directoryItem = projectItems.Item("src"); global::EnvDTE.ProjectItem fileItem = directoryItem.ProjectItems.Item("program.cs"); global::EnvDTE.CodeElements codeElements = fileItem.FileCodeModel.CodeElements; CodeNamespace codeNamespace = codeElements.FirstCodeNamespaceOrDefault(); Assert.AreEqual(testableDteProject.TestableProject, fakeFileService.ProjectPassedToGetCompilationUnit); Assert.AreEqual(0, codeElements.Count); }
public void Attributes_PropertyHasOneAttribute_ReturnsOneAttribute() { CreateCodeProperty2( "class MyClass {\r\n" + " [System.Obsolete]\r\n" + " public int MyProperty { get; set; }\r\n" + "}"); global::EnvDTE.CodeElements attributes = property.Attributes; CodeAttribute2 attribute = attributes.Item(1) as CodeAttribute2; Assert.AreEqual(1, attributes.Count); Assert.AreEqual("System.ObsoleteAttribute", attribute.FullName); }
public void CodeElements_OneNamespaceInProjectWithTwoPartsToName_ReturnsOneCodeNamespaceItemWithFirstPartOfNamespaceAsName() { CreateCodeModel(); AddClassToProject("namespace First.Second {}"); global::EnvDTE.CodeElements codeElements = codeModel.CodeElements; global::EnvDTE.CodeNamespace codeNamespace = codeElements .FindFirstCodeNamespaceOrDefault(e => e.Name == "First"); global::EnvDTE.CodeNamespace secondCodeNamespace = codeNamespace.Members.FirstCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.FullName); Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual("Second", secondCodeNamespace.Name); Assert.AreEqual("First.Second", secondCodeNamespace.FullName); }
public void Members_ProjectHasTwoNamespacesWithCommonFirstAndSecondPartOfThreePartNamespace_ReturnsOneChildNamespaceWhichHasOneChildNamespace() { CreateProjectContent(); helper.AddNamespaceCompletionEntryInNamespace("First", "Second"); helper.AddNamespaceCompletionEntriesInNamespace("First.Second", "Third", "Different"); CreateCodeNamespace("First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace secondNamespace = members.FirstOrDefault() as CodeNamespace; Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", secondNamespace.Name); Assert.AreEqual("First.Second", secondNamespace.FullName); Assert.AreEqual(2, secondNamespace.Members.Count); }
public void Attributes_MethodHasOneAttribute_ReturnsOneAttribute() { CreateFunction( "using System;\r\n" + "public class MyClass {\r\n" + " [Obsolete]\r\n" + " public void MyFunction() {}\r\n" + "}"); global::EnvDTE.CodeElements attributes = codeFunction.Attributes; CodeAttribute2 attribute = attributes.FirstCodeAttribute2OrDefault(); Assert.AreEqual(1, attributes.Count); Assert.AreEqual("System.ObsoleteAttribute", attribute.FullName); }
public void Members_NamespaceHasOneChildNamespaceWithThreeNamespaceParts_ReturnsOneChildNamespaceWhichHasOneChildNamespace() { string code = "namespace First.Second.Third {}"; CreateCodeNamespace(code, "First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace secondNamespace = members.FirstCodeNamespaceOrDefault(); CodeNamespace thirdNamespace = secondNamespace.Members.FirstCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", secondNamespace.Name); Assert.AreEqual("First.Second", secondNamespace.FullName); Assert.AreEqual(1, secondNamespace.Members.Count); Assert.AreEqual("First.Second.Third", thirdNamespace.FullName); Assert.AreEqual(0, thirdNamespace.Members.Count); }
public void Members_ProjectHasTwoNamespacesWithCommonFirstAndSecondPartOfThreePartNamespace_ReturnsOneChildNamespaceWhichHasOneChildNamespace() { string code = "namespace First.Second {\r\n" + " namespace Third {}\r\n" + " namespace Different {}\r\n" + "}"; CreateCodeNamespace(code, "First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace secondNamespace = members.FirstOrDefault() as CodeNamespace; Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", secondNamespace.Name); Assert.AreEqual("First.Second", secondNamespace.FullName); Assert.AreEqual(2, secondNamespace.Members.Count); }
public void Members_NamespaceHasOneChildNamespaceWithThreeNamespaceParts_ReturnsOneChildNamespaceWhichHasOneChildNamespace() { CreateProjectContent(); helper.AddNamespaceCompletionEntryInNamespace("First", "Second"); helper.AddNamespaceCompletionEntryInNamespace("First.Second", "Third"); helper.NoCompletionItemsInNamespace("First.Second.Third"); CreateCodeNamespace("First"); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace secondNamespace = members.FirstCodeNamespaceOrDefault(); CodeNamespace thirdNamespace = secondNamespace.Members.FirstCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.Name); Assert.AreEqual(1, members.Count); Assert.AreEqual("Second", secondNamespace.Name); Assert.AreEqual("First.Second", secondNamespace.FullName); Assert.AreEqual(1, secondNamespace.Members.Count); Assert.AreEqual("First.Second.Third", thirdNamespace.FullName); Assert.AreEqual(0, thirdNamespace.Members.Count); }
public void CodeElements_TwoNamespacesInProjectWithFirstPartsTheName_ReturnsOneParentNamespaceWithTwoChildNamespaces() { CreateCodeModel(); helper.AddNamespaceCompletionEntryInNamespace(String.Empty, "First"); helper.AddNamespaceCompletionEntriesInNamespace("First", "A", "B"); helper.NoCompletionItemsInNamespace("First.A"); helper.NoCompletionItemsInNamespace("First.B"); global::EnvDTE.CodeElements codeElements = codeModel.CodeElements; CodeNamespace codeNamespace = codeElements.FirstCodeNamespaceOrDefault(); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace firstChildNamespace = members.FirstCodeNamespaceOrDefault(); CodeNamespace secondChildNamespace = members.LastCodeNamespaceOrDefault(); Assert.AreEqual(1, codeElements.Count); Assert.AreEqual("First", codeNamespace.FullName); Assert.AreEqual(2, codeNamespace.Members.Count); Assert.AreEqual("A", firstChildNamespace.Name); Assert.AreEqual("B", secondChildNamespace.Name); }
public void CodeElements_TwoNamespacesInProjectWithFirstPartsTheName_ReturnsOneParentNamespaceWithTwoChildNamespaces() { CreateCodeModel(); string code = "namespace First.A { }\r\n" + "namespace First.B { }\r\n"; AddClassToProject(code); global::EnvDTE.CodeElements codeElements = codeModel.CodeElements; CodeNamespace codeNamespace = codeElements.FirstCodeNamespaceOrDefault(); global::EnvDTE.CodeElements members = codeNamespace.Members; CodeNamespace firstChildNamespace = members.FirstCodeNamespaceOrDefault(); CodeNamespace secondChildNamespace = members.LastCodeNamespaceOrDefault(); Assert.AreEqual("First", codeNamespace.FullName); Assert.AreEqual(2, codeNamespace.Members.Count); Assert.AreEqual("A", firstChildNamespace.Name); Assert.AreEqual("B", secondChildNamespace.Name); }
public static CodeClass2 LastCodeClass2OrDefault(this global::EnvDTE.CodeElements codeElements) { return(codeElements.LastOrDefault() as CodeClass2); }
public static CodeImport FirstCodeImportOrDefault(this global::EnvDTE.CodeElements codeElements) { return(codeElements.FirstOrDefault() as CodeImport); }
public static CodeParameter2 FirstCodeParameter2OrDefault(this global::EnvDTE.CodeElements codeElements) { return(codeElements.FirstOrDefault() as CodeParameter2); }