/// <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(); serviceProvider.ComponentModel.AddExtension( typeof(IErrorProviderFactory), () => new MockErrorProviderFactory() ); serviceProvider.ComponentModel.AddExtension( typeof(IContentTypeRegistryService), CreateContentTypeRegistryService ); serviceProvider.ComponentModel.AddExtension( typeof(IInteractiveWindowCommandsFactory), () => new MockInteractiveWindowCommandsFactory() ); serviceProvider.AddService(typeof(ErrorTaskProvider), CreateTaskProviderService, true); serviceProvider.AddService(typeof(CommentTaskProvider), CreateTaskProviderService, 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; }
/// <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( bool suppressTaskProvider = false ) { var serviceProvider = new MockServiceProvider(); serviceProvider.ComponentModel.AddExtension( typeof(IErrorProviderFactory), () => new MockErrorProviderFactory() ); serviceProvider.ComponentModel.AddExtension( typeof(IContentTypeRegistryService), CreateContentTypeRegistryService ); serviceProvider.ComponentModel.AddExtension( typeof(IInteractiveWindowCommandsFactory), () => new MockInteractiveWindowCommandsFactory() ); var optService = new Lazy<MockInterpreterOptionsService>(() => new MockInterpreterOptionsService()); serviceProvider.ComponentModel.AddExtension<IInterpreterRegistryService>(() => optService.Value); serviceProvider.ComponentModel.AddExtension<IInterpreterOptionsService>(() => optService.Value); if (suppressTaskProvider) { serviceProvider.AddService(typeof(ErrorTaskProvider), null, true); serviceProvider.AddService(typeof(CommentTaskProvider), null, true); } else { serviceProvider.AddService(typeof(ErrorTaskProvider), CreateTaskProviderService, true); serviceProvider.AddService(typeof(CommentTaskProvider), CreateTaskProviderService, 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; }