Пример #1
0
        /// <summary>
        /// Sets up a limited service provider which can be used for testing.
        ///
        /// This will not include many of the services which are typically available in
        /// VS but is suitable for simple test cases which need just some base functionality.
        /// </summary>
        public static MockServiceProvider CreateMockServiceProvider()
        {
            var serviceProvider = new MockServiceProvider();
            var errorProvider   = new MockErrorProviderFactory();

            serviceProvider.AddService(typeof(MockErrorProviderFactory), errorProvider, true);
            serviceProvider.AddService(typeof(SComponentModel), new MockComponentModel());
            serviceProvider.AddService(
                typeof(ErrorTaskProvider),
                (container, type) => new ErrorTaskProvider(serviceProvider, null, errorProvider),
                true
                );
            serviceProvider.AddService(
                typeof(CommentTaskProvider),
                (container, type) => new CommentTaskProvider(serviceProvider, null, errorProvider),
                true
                );
            serviceProvider.AddService(typeof(IUIThread), new MockUIThread());
            var optionsService = new MockPythonToolsOptionsService();

            serviceProvider.AddService(typeof(IPythonToolsOptionsService), optionsService, true);

            var ptvsService = new PythonToolsService(serviceProvider);

            serviceProvider.AddService(typeof(PythonToolsService), ptvsService);
            return(serviceProvider);
        }
Пример #2
0
        public void Initialize()
        {
            // Specifiy PythonTools\NoInterpreterFactories to suppress loading
            // all providers in tests.
            var settings = (IVsSettingsManager)_serviceContainer.GetService(typeof(SVsSettingsManager));
            IVsWritableSettingsStore store;

            ErrorHandler.ThrowOnFailure(settings.GetWritableSettingsStore((uint)SettingsScope.Configuration, out store));
            ErrorHandler.ThrowOnFailure(store.CreateCollection(@"PythonTools\NoInterpreterFactories"));


            _serviceContainer.AddService(typeof(IPythonToolsOptionsService), new MockPythonToolsOptionsService());
            var errorProvider = new MockErrorProviderFactory();

            _serviceContainer.AddService(typeof(MockErrorProviderFactory), errorProvider, true);
            _serviceContainer.AddService(typeof(IClipboardService), new MockClipboardService());
            UIThread.EnsureService(_serviceContainer);

            _serviceContainer.AddService(
                typeof(Microsoft.PythonTools.Intellisense.ErrorTaskProvider),
                new ServiceCreatorCallback((container, type) => {
                var p = new Microsoft.PythonTools.Intellisense.ErrorTaskProvider(_serviceContainer, null, errorProvider);
                lock (_onDispose) {
                    _onDispose.Add(() => p.Dispose());
                }
                return(p);
            }),
                true
                );

            _serviceContainer.AddService(
                typeof(Microsoft.PythonTools.Intellisense.CommentTaskProvider),
                new ServiceCreatorCallback((container, type) => {
                var p = new Microsoft.PythonTools.Intellisense.CommentTaskProvider(_serviceContainer, null, errorProvider);
                lock (_onDispose) {
                    _onDispose.Add(() => p.Dispose());
                }
                return(p);
            }),
                true
                );

            var pyService = new PythonToolsService(_serviceContainer);

            _serviceContainer.AddService(typeof(PythonToolsService), pyService, true);

            _serviceContainer.AddService(typeof(IPythonLibraryManager), (object)null);

            // register our project factory...
            var  regProjectTypes = (IVsRegisterProjectTypes)_serviceContainer.GetService(typeof(SVsRegisterProjectTypes));
            uint cookie;
            var  guid = Guid.Parse(PythonConstants.ProjectFactoryGuid);

            regProjectTypes.RegisterProjectType(
                ref guid,
                new PythonProjectFactory(_serviceContainer),
                out cookie
                );
        }
Пример #3
0
        /// <summary>
        /// Sets up a limited service provider which can be used for testing.
        ///
        /// This will not include many of the services which are typically available in
        /// VS but is suitable for simple test cases which need just some base functionality.
        /// </summary>
        public static MockServiceProvider CreateMockServiceProvider()
        {
            var serviceProvider = new MockServiceProvider();
            var errorProvider   = new MockErrorProviderFactory();

            serviceProvider.ComponentModel.AddExtension(
                typeof(IErrorProviderFactory),
                () => new MockErrorProviderFactory()
                );
            serviceProvider.ComponentModel.AddExtension(
                typeof(IContentTypeRegistryService),
                () => new MockClassificationTypeRegistryService()
                );

#if DEV14_OR_LATER
            serviceProvider.ComponentModel.AddExtension(
                typeof(IInteractiveWindowCommandsFactory),
                () => new MockInteractiveWindowCommandsFactory()
                );
#endif

            serviceProvider.AddService(
                typeof(ErrorTaskProvider),
                (container, type) => new ErrorTaskProvider(serviceProvider, null, errorProvider),
                true
                );
            serviceProvider.AddService(
                typeof(CommentTaskProvider),
                (container, type) => new CommentTaskProvider(serviceProvider, null, errorProvider),
                true
                );
            serviceProvider.AddService(typeof(UIThreadBase), new MockUIThread());
            var optionsService = new MockPythonToolsOptionsService();
            serviceProvider.AddService(typeof(IPythonToolsOptionsService), optionsService, true);

            var ptvsService = new PythonToolsService(serviceProvider);
            serviceProvider.AddService(typeof(PythonToolsService), ptvsService);
            return(serviceProvider);
        }
        public void Initialize()
        {
            _serviceContainer.AddService(typeof(IPythonToolsOptionsService), new MockPythonToolsOptionsService());
            var errorProvider = new MockErrorProviderFactory();

            _serviceContainer.AddService(typeof(MockErrorProviderFactory), errorProvider, true);
            _serviceContainer.AddService(typeof(IClipboardService), new MockClipboardService());
            UIThread.EnsureService(_serviceContainer);

            _serviceContainer.AddService(
                typeof(Microsoft.PythonTools.Intellisense.ErrorTaskProvider),
                new ServiceCreatorCallback((container, type) => new Microsoft.PythonTools.Intellisense.ErrorTaskProvider(_serviceContainer, null, errorProvider)),
                true
                );

            _serviceContainer.AddService(
                typeof(Microsoft.PythonTools.Intellisense.CommentTaskProvider),
                new ServiceCreatorCallback((container, type) => new Microsoft.PythonTools.Intellisense.CommentTaskProvider(_serviceContainer, null, errorProvider)),
                true
                );

            var pyService = new PythonToolsService(_serviceContainer);

            _serviceContainer.AddService(typeof(PythonToolsService), pyService, true);

            _serviceContainer.AddService(typeof(IPythonLibraryManager), (object)null);

            // register our project factory...
            var  regProjectTypes = (IVsRegisterProjectTypes)_serviceContainer.GetService(typeof(SVsRegisterProjectTypes));
            uint cookie;
            var  guid = Guid.Parse(PythonConstants.ProjectFactoryGuid);

            regProjectTypes.RegisterProjectType(
                ref guid,
                new PythonProjectFactory(_serviceContainer),
                out cookie
                );
        }
Пример #5
0
        public void Initialize()
        {
            var settings = (IVsSettingsManager)_serviceContainer.GetService(typeof(SVsSettingsManager));
            IVsWritableSettingsStore store;

            ErrorHandler.ThrowOnFailure(settings.GetWritableSettingsStore((uint)SettingsScope.Configuration, out store));


            _serviceContainer.AddService(typeof(IPythonToolsOptionsService), new MockPythonToolsOptionsService());
            var errorProvider = new MockErrorProviderFactory();

            _serviceContainer.AddService(typeof(MockErrorProviderFactory), errorProvider, true);
            _serviceContainer.AddService(typeof(IClipboardService), new MockClipboardService());
            UIThread.EnsureService(_serviceContainer);

            _serviceContainer.AddService(typeof(ErrorTaskProvider), CreateTaskProviderService, true);
            _serviceContainer.AddService(typeof(CommentTaskProvider), CreateTaskProviderService, true);

            var pyService = new PythonToolsService(_serviceContainer);

            _onDispose.Add(() => ((IDisposable)pyService).Dispose());
            _serviceContainer.AddService(typeof(PythonToolsService), pyService, true);

            _serviceContainer.AddService(typeof(IPythonLibraryManager), (object)null);

            // register our project factory...
            var  regProjectTypes = (IVsRegisterProjectTypes)_serviceContainer.GetService(typeof(SVsRegisterProjectTypes));
            uint cookie;
            var  guid = Guid.Parse(PythonConstants.ProjectFactoryGuid);

            regProjectTypes.RegisterProjectType(
                ref guid,
                new PythonProjectFactory(_serviceContainer),
                out cookie
                );
        }