public void AddedModuleIsAtCorrectDepth_FirstAnnotation() { const string inputCode = @"'@Folder(""First.Second.Third"") Sub Foo() Dim d As Boolean d = True End Sub"; using (var explorer = new MockedCodeExplorer(ProjectType.HostProject, new[] { ComponentType.StandardModule }, new[] { inputCode }) .SelectFirstCustomFolder()) { var project = explorer.ViewModel.Projects.OfType <CodeExplorerProjectViewModel>().First(); var folder = (CodeExplorerCustomFolderViewModel)explorer.ViewModel.SelectedItem; var declarations = project.State.AllUserDeclarations.ToList(); var annotation = new FolderAnnotation(new QualifiedSelection(project.Declaration.QualifiedModuleName, new Selection(1, 1)), null, new[] { "\"First\"" }); var predeclared = new PredeclaredIdAnnotation(new QualifiedSelection(project.Declaration.QualifiedModuleName, new Selection(2, 1)), null, Enumerable.Empty <string>()); declarations.Add(GetNewClassDeclaration(project.Declaration, "Foo", new IAnnotation [] { annotation, predeclared })); project.Synchronize(ref declarations); var added = folder.Children.OfType <CodeExplorerComponentViewModel>().Single(); Assert.AreEqual(DeclarationType.ClassModule, added.Declaration.DeclarationType); Assert.AreEqual("\"First\"", added.Declaration.CustomFolder); } }
public void AnnotateDeclarationRefactoringAction_AdjustAttributeSet_AttributeAlreadyThere_AdjustsAttribute_Module() { const string code = @"Attribute VB_Exposed = False Attribute VB_PredeclaredId = False Public Sub Foo() End Sub "; const string expectedCode = @"Attribute VB_Exposed = False Attribute VB_PredeclaredId = True '@PredeclaredId Public Sub Foo() End Sub "; Func <RubberduckParserState, AnnotateDeclarationModel> modelBuilder = (state) => { var declaration = state.DeclarationFinder .UserDeclarations(DeclarationType.Module) .Single(); var annotation = new PredeclaredIdAnnotation(); var arguments = new List <TypedAnnotationArgument>(); return(new AnnotateDeclarationModel(declaration, annotation, arguments, true)); }; var refactoredCode = RefactoredCode(code, modelBuilder); Assert.AreEqual(expectedCode, refactoredCode); }
public void PredeclaredIdAnnotation_TypeIsPredeclaredId() { var annotation = new PredeclaredIdAnnotation(new QualifiedSelection(), null, null); Assert.AreEqual(AnnotationType.PredeclaredId, annotation.AnnotationType); }