protected override void OnExecute(object parameter)
        {
            using (var pane = _vbe.ActiveCodePane)
            {
                if (pane.IsWrappingNullReference)
                {
                    return;
                }

                using (var module = pane.CodeModule)
                {
                    var declaration = _state.GetTestModules()
                                      .FirstOrDefault(f => _state.ProjectsProvider.Component(f.QualifiedModuleName).HasEqualCodeModule(module));

                    if (declaration == null)
                    {
                        return;
                    }

                    string name;
                    using (var component = module.Parent)
                    {
                        name = GetNextTestMethodName(component);
                    }
                    var body = TestMethodTemplate.Replace(NamePlaceholder, name);
                    module.InsertLines(module.CountOfLines, body);
                }
            }
            _state.OnParseRequested(this);
        }
        protected override void ExecuteImpl(object parameter)
        {
            var pane = _vbe.ActiveCodePane;

            if (pane.IsWrappingNullReference)
            {
                return;
            }

            var activeModule = pane.CodeModule;
            var declaration  = _state.GetTestModules().FirstOrDefault(f =>
            {
                var thisModule = f.QualifiedName.QualifiedModuleName.Component.CodeModule;
                return(thisModule.Equals(activeModule));
            });

            if (declaration != null)
            {
                var module = pane.CodeModule;
                var name   = GetNextTestMethodName(module.Parent);
                var body   = TestMethodExpectedErrorTemplate.Replace(NamePlaceholder, name);
                module.InsertLines(module.CountOfLines, body);
            }

            _state.OnParseRequested(this, _vbe.SelectedVBComponent);
        }
示例#3
0
        protected override void ExecuteImpl(object parameter)
        {
            if (_vbe.ActiveCodePane == null)
            {
                return;
            }

            try
            {
                var declaration = _state.GetTestModules().FirstOrDefault(f =>
                                                                         f.QualifiedName.QualifiedModuleName.Component.CodeModule == _vbe.ActiveCodePane.CodeModule);

                if (declaration != null)
                {
                    var module = _vbe.ActiveCodePane.CodeModule;
                    var name   = GetNextTestMethodName(module.Parent);
                    var body   = TestMethodExpectedErrorTemplate.Replace(NamePlaceholder, name);
                    module.InsertLines(module.CountOfLines, body);
                }
            }
            catch (COMException)
            {
            }

            _state.OnParseRequested(this, _vbe.SelectedVBComponent);
        }
示例#4
0
        protected override void OnExecute(object parameter)
        {
            using (var pane = _vbe.ActiveCodePane)
            {
                if (pane?.IsWrappingNullReference ?? true)
                {
                    return;
                }

                using (var module = pane.CodeModule)
                {
                    var declaration = _state.GetTestModules()
                                      .FirstOrDefault(f => _state.ProjectsProvider.Component(f.QualifiedModuleName).HasEqualCodeModule(module));

                    if (declaration == null)
                    {
                        return;
                    }

                    using (var component = module.Parent)
                    {
                        module.InsertLines(module.CountOfLines, _codeGenerator.GetNewTestMethodCode(component));
                    }
                }
            }
            _state.OnParseRequested(this);
        }
示例#5
0
        private static  (Declaration targetModule, string testMethodContent) GetTargetModuleAndTestMethodCode(IVBE vbe, RubberduckParserState state, Func<IVBComponent, string> methodGenerator)
        {
            (Declaration, string) defaultResult = (null, string.Empty);

            using (var pane = vbe.ActiveCodePane)
            {
                if (pane?.IsWrappingNullReference ?? true)
                {
                    return defaultResult;
                }

                using (var module = pane.CodeModule)
                {
                    var declaration = state.GetTestModules()
                        .FirstOrDefault(f => state.ProjectsProvider.Component(f.QualifiedModuleName).HasEqualCodeModule(module));

                    if (declaration == null)
                    {
                        return defaultResult;
                    }

                    var testMethodCode = string.Empty;
                    using (var component = module.Parent)
                    {
                        testMethodCode = methodGenerator(component);
                        return (declaration, testMethodCode);
                    }
                }
            }
        }