/// <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); }
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 ); }
/// <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 ); }
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 ); }