private static Declarations ExecuteGetDeclarations(string lineText, IScanner scanner, IServiceProvider site)
        {
            // Create the authoring scope.
            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.DisplayMemberList;
            AuthoringScope scope = ConsoleAuthoringScope.CreateScope(request);

            Assert.IsNotNull(scope);

            // Create a mock IConsoleText
            BaseMock mockConsoleText = MockFactories.ConsoleTextFactory.GetInstance();

            mockConsoleText.AddMethodReturnValues(
                string.Format("{0}.{1}", typeof(IConsoleText).FullName, "TextOfLine"),
                new object[] { lineText });
            ConsoleAuthoringScope.PythonConsole = mockConsoleText as IConsoleText;

            // Create a language service.
            TestLanguage language = new TestLanguage();

            // Set the scanner for this language.
            language.MockScanner           = scanner;
            ConsoleAuthoringScope.Language = language;

            // Set the site for the scope.
            ConsoleAuthoringScope.Site = site;

            // Create the view and token info to call the scope.
            IVsTextView view      = MockFactories.TextViewFactory.GetInstance() as IVsTextView;
            TokenInfo   tokenInfo = new TokenInfo();

            return(scope.GetDeclarations(view, 0, 0, tokenInfo, ParseReason.DisplayMemberList));
        }
        public void GetMethodsTest()
        {
            // This method is not implemented, so the only check is that it does not
            // crashes and that returns null.
            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.DisplayMemberList;
            AuthoringScope scope = ConsoleAuthoringScope.CreateScope(request);

            Assert.IsNotNull(scope);
            Assert.IsNull(scope.GetMethods(0, 0, ""));
        }
        public void GotoTest()
        {
            // This method is not implemented, so the only check is that it does not
            // crashes and that returns null.
            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.DisplayMemberList;
            AuthoringScope scope = ConsoleAuthoringScope.CreateScope(request);

            Assert.IsNotNull(scope);
            TextSpan span;

            Assert.IsNull(scope.Goto(
                              Microsoft.VisualStudio.VSConstants.VSStd97CmdID.ClearPane,
                              null, 0, 0, out span));
        }
        public void CreateScopeTest()
        {
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(null));

            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.None;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.MemberSelect;
            Assert.IsNotNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.HighlightBraces;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.MemberSelectAndHighlightBraces;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.MatchBraces;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.Check;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.CompleteWord;
            Assert.IsNotNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.DisplayMemberList;
            Assert.IsNotNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.QuickInfo;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.MethodTip;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.Autos;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.CodeSpan;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));

            request.Reason = ParseReason.Goto;
            Assert.IsNull(ConsoleAuthoringScope.CreateScope(request));
        }
        public void GetDeclarationsNullView()
        {
            // Create the authoring scope.
            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.DisplayMemberList;
            AuthoringScope scope = ConsoleAuthoringScope.CreateScope(request);

            Assert.IsNotNull(scope);

            // Create a mock IConsoleText
            BaseMock mockConsoleText = MockFactories.ConsoleTextFactory.GetInstance();

            mockConsoleText.AddMethodReturnValues(
                string.Format("{0}.{1}", typeof(IConsoleText).FullName, "TextOfLine"),
                new object[] { "dte." });
            ConsoleAuthoringScope.PythonConsole = mockConsoleText as IConsoleText;

            // Creeate a TokenInfo
            TokenInfo tokenInfo = new TokenInfo();

            // Call GetDeclarations.
            bool exceptionThrown = false;

            try
            {
                scope.GetDeclarations(null, 0, 0, tokenInfo, ParseReason.DisplayMemberList);
            }
            catch (ArgumentNullException)
            {
                exceptionThrown = true;
            }
            catch (System.Reflection.TargetInvocationException e)
            {
                ArgumentNullException inner = e.InnerException as ArgumentNullException;
                if (null != inner)
                {
                    exceptionThrown = true;
                }
            }
            Assert.IsTrue(exceptionThrown);
        }
        public void GetDeclarationsNullText()
        {
            // Create a mock IConsoleText that will return null on TextOfLine.
            IConsoleText consoleText = MockFactories.ConsoleTextFactory.GetInstance() as IConsoleText;

            ConsoleAuthoringScope.PythonConsole = consoleText;

            // Create the authoring scope.
            ParseRequest request = new ParseRequest(false);

            request.Reason = ParseReason.DisplayMemberList;
            AuthoringScope scope = ConsoleAuthoringScope.CreateScope(request);

            Assert.IsNotNull(scope);

            // Create object with not null value for the parameters.
            IVsTextView view      = MockFactories.TextViewFactory.GetInstance() as IVsTextView;
            TokenInfo   tokenInfo = new TokenInfo();

            // Call GetDeclarations.
            Declarations declarations = scope.GetDeclarations(view, 0, 0, tokenInfo, ParseReason.DisplayMemberList);

            Assert.IsTrue(0 == declarations.GetCount());
        }