/// <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 ); #if DEV14_OR_LATER serviceProvider.ComponentModel.AddExtension( typeof(IInteractiveWindowCommandsFactory), () => new MockInteractiveWindowCommandsFactory() ); #endif 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); }
public void ObjectExtenderContainerConverterConvertToTypeCompliantWithXmlSerializer() { MockServiceProvider mockServiceProvider = new MockServiceProvider(); MockServiceProviderService mockService = new MockServiceProviderService(); mockServiceProvider.AddService(typeof(IExtensionProviderService), mockService); ObjectExtenderContainerConverter converter = new ObjectExtenderContainerConverter(mockServiceProvider); TestSerializableObject testObject1 = new TestSerializableObject(); testObject1.ValueOne = "TestDataOne"; testObject1.ValueTwo = 33; string stringRepresentation; Type[] types = { typeof(TestSerializableObject) }; ObjectExtenderContainer container1 = new ObjectExtenderContainer(); container1.ObjectExtenders.Add(testObject1); stringRepresentation = GenericSerializer.Serialize <ObjectExtenderContainer>(container1, types); string stringRepresentation2 = converter.ConvertTo(stringRepresentation, typeof(string)) as string; Assert.AreEqual(stringRepresentation, stringRepresentation2, "Not equal"); }
public void ObjectExtenderContainerConverterConvertFromTypeCompliantWithXmlSerializer() { MockServiceProvider mockServiceProvider = new MockServiceProvider(); Type[] types = { typeof(TestSerializableObject) }; MockServiceProviderService mockService = new MockServiceProviderService(); mockService.ObjectExtenderTypes.Add(types[0]); mockServiceProvider.AddService(typeof(IExtensionProviderService), mockService); ObjectExtenderContainerConverter converter = new ObjectExtenderContainerConverter(mockServiceProvider); TestSerializableObject testObject1 = new TestSerializableObject(); testObject1.ValueOne = "TestDataOne"; testObject1.ValueTwo = 33; string stringRepresentation; ObjectExtenderContainer container1 = new ObjectExtenderContainer(); container1.ObjectExtenders.Add(testObject1); stringRepresentation = GenericSerializer.Serialize <ObjectExtenderContainer>(container1, types); ObjectExtenderContainer container2 = converter.ConvertFrom(stringRepresentation) as ObjectExtenderContainer; Assert.IsNotNull(container2, "container is null"); Assert.IsNotNull(container2.ObjectExtenders, "ObjectExtenders is null"); Assert.AreEqual(1, container2.ObjectExtenders.Count, "container.ObjectExtenders.Count != 1"); TestSerializableObject testObject2 = container2.ObjectExtenders[0] as TestSerializableObject; Assert.AreEqual(testObject1.ValueOne, testObject2.ValueOne, "Not equal"); Assert.AreEqual(testObject1.ValueTwo, testObject2.ValueTwo, "Not equal"); }
/// <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); }
private static CodeGenerationService CreateCodeGenerator(string itemPath, out MockVsRDT rdt) { string fullItemPath = Path.Combine(Directory.GetCurrentDirectory(), itemPath); string fullProjectPath = Path.Combine(Directory.GetCurrentDirectory(), "Project.project"); MockServiceProvider serviceProvider = new MockServiceProvider(); MockVSHierarchy vsHierarchy = new MockVSHierarchy(fullProjectPath); MockVsSolution vsSolution = new MockVsSolution(vsHierarchy); rdt = new MockVsRDT(fullItemPath, vsHierarchy, 0); MockVsTextManager textManager = new MockVsTextManager(); MockVsUIShellOpenDocument shellOpenDocument = new MockVsUIShellOpenDocument(); serviceProvider.AddService(typeof(SVsSolution), vsSolution); serviceProvider.AddService(typeof(IVsRunningDocumentTable), rdt); serviceProvider.AddService(typeof(VsTextManagerClass), textManager); serviceProvider.AddService(typeof(SVsUIShellOpenDocument), shellOpenDocument); return(new TestableCodeGenerationService(serviceProvider)); }
public void ObjectExtenderContainerConverterCanConvertFromString() { MockServiceProvider mockServiceProvider = new MockServiceProvider(); MockServiceProviderService mockService = new MockServiceProviderService(); mockServiceProvider.AddService(typeof(IExtensionProviderService), mockService); ObjectExtenderContainerConverter converter = new ObjectExtenderContainerConverter(mockServiceProvider); Assert.IsTrue(converter.CanConvertFrom(typeof(string)), "Cannot convert from a string"); }
public EditorTestToolset(bool useRealUIThread = true) { _exportProvider = MefExportProviders.CreateEditorExportProvider(); var settingsManager = new MockSettingsManager(); settingsManager.Store.AllowEmptyCollections = true; _serviceProvider = _exportProvider.GetExportedValue <MockServiceProvider>(); _serviceProvider.Services[typeof(SVsSettingsManager).GUID] = settingsManager; if (useRealUIThread) { _serviceProvider.AddService(typeof(UIThreadBase), new UIThread(_exportProvider.GetExportedValue <JoinableTaskContext>())); } else { _serviceProvider.AddService(typeof(UIThreadBase), new MockUIThread()); } UIThread = (UIThreadBase)_serviceProvider.GetService(typeof(UIThreadBase)); }
/// <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 = true ) { 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); var editorServices = CreatePythonEditorServices(serviceProvider, serviceProvider.ComponentModel); serviceProvider.ComponentModel.AddExtension(() => editorServices); var analysisEntryServiceCreator = new Lazy <AnalysisEntryService>(() => new AnalysisEntryService(new Lazy <PythonEditorServices>(() => editorServices))); serviceProvider.ComponentModel.AddExtension <IAnalysisEntryService>(() => analysisEntryServiceCreator.Value); serviceProvider.ComponentModel.AddExtension(() => analysisEntryServiceCreator.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); }
/// <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 = true ) { var componentModel = new MockComponentModel(); var serviceProvider = new MockServiceProvider(componentModel); componentModel.AddExtension( typeof(IErrorProviderFactory), () => new MockErrorProviderFactory() ); componentModel.AddExtension( typeof(IContentTypeRegistryService), CreateContentTypeRegistryService ); componentModel.AddExtension( typeof(IInteractiveWindowCommandsFactory), () => new MockInteractiveWindowCommandsFactory() ); var optService = new Lazy <MockInterpreterOptionsService>(() => new MockInterpreterOptionsService()); componentModel.AddExtension <IInterpreterRegistryService>(() => optService.Value); componentModel.AddExtension <IInterpreterOptionsService>(() => optService.Value); serviceProvider.AddService(typeof(UIThreadBase), new MockUIThread()); var optionsService = new MockPythonToolsOptionsService(); serviceProvider.AddService(typeof(IPythonToolsOptionsService), optionsService, true); var ptvsService = new PythonToolsService(serviceProvider, true); serviceProvider.AddService(typeof(PythonToolsService), ptvsService); return(serviceProvider); }
public void EditValueWithNoFormsServiceThrows() { MockVSHierarchy root = new MockVSHierarchy(); MockVsSolution solution = new MockVsSolution(root); MockServiceProvider serviceProvider = new MockServiceProvider(); serviceProvider.AddService(typeof(IVsSolution), solution); MockTypeDescriptorContext context = new MockTypeDescriptorContext(serviceProvider); string value = "Project1.txt"; MockVSHierarchy project = new MockVSHierarchy(value); root.AddProject(project); SolutionPickerEditor target = new SolutionPickerEditor(); target.EditValue(serviceProvider, null); }
public void TestArtifactIsGenerated() { MockServiceProvider serviceProvider = new MockServiceProvider(); MockVSHierarchy root = new MockVSHierarchy(); MockVsSolution solution = new MockVsSolution(root); MockVSHierarchy project = new MockVSHierarchy("Project1.project"); root.AddProject(project); serviceProvider.AddService(typeof(SVsSolution), solution); CodeGenerationService target = new CodeGenerationService(serviceProvider); MyArtifactLink validLink = new MyArtifactLink(project.GUID, "item1.cs"); Assert.IsFalse(target.IsArtifactAlreadyGenerated(validLink)); project.AddChild("item1.cs"); Assert.IsTrue(target.IsArtifactAlreadyGenerated(validLink)); }
public void ExtensionProviderContainerConverterConvertToExtensionProvider() { MockExtensionProvider provider = new MockExtensionProvider(); MockServiceProvider mockServiceProvider = new MockServiceProvider(); MockServiceProviderService mockService = new MockServiceProviderService(); mockServiceProvider.AddService(typeof(IExtensionProviderService), mockService); ExtensionProviderConverter converter = new ExtensionProviderConverter(mockServiceProvider); MockExtensionProvider provider1 = converter.ConvertFrom(provider.ToString()) as MockExtensionProvider; Assert.AreEqual(provider.Id, provider1.Id, "Not Equal"); Assert.AreEqual(provider.Description, provider1.Description, "Not Equal"); Assert.AreEqual(provider.Name, provider1.Name, "Not Equal"); }
public void TestValidateDelete() { MockServiceProvider serviceProvider = new MockServiceProvider(); MockVSHierarchy root = new MockVSHierarchy(); MockVsSolution solution = new MockVsSolution(root); MockVSHierarchy project = new MockVSHierarchy("Project1.project"); root.AddProject(project); serviceProvider.AddService(typeof(SVsSolution), solution); TestableCodeGenerationService target = new TestableCodeGenerationService(serviceProvider); MyArtifactLink validLink = new MyArtifactLink(project.GUID, "item1.cs"); HierarchyNode node = target.ValidateDelete(validLink); Assert.IsNull(node); Assert.AreEqual <int>(0, target.LogEntries.Count); project.AddChild("item1.cs"); node = target.ValidateDelete(validLink); Assert.IsNotNull(node); Assert.AreEqual <int>(1, target.LogEntries.Count); }
public void TestValidate() { MockServiceProvider serviceProvider = new MockServiceProvider(); MockVSHierarchy root = new MockVSHierarchy(); MockVsSolution solution = new MockVsSolution(root); MockVSHierarchy project = new MockVSHierarchy("Project1.project"); root.AddProject(project); serviceProvider.AddService(typeof(SVsSolution), solution); CodeGenerationService target = new CodeGenerationService(serviceProvider); MyArtifactLink validLink = new MyArtifactLink(project.GUID, "item1.cs"); Assert.IsTrue(target.IsValid(validLink)); MyArtifactLink invalidLink1 = new MyArtifactLink(Guid.NewGuid(), "item2.cs"); Assert.IsFalse(target.IsValid(invalidLink1)); MyArtifactLink invalidLink2 = new MyArtifactLink(project.GUID, "it:em3.cs"); Assert.IsFalse(target.IsValid(invalidLink2)); MyArtifactLink invalidLink3 = new MyArtifactLink(Guid.NewGuid(), "<item3.cs>"); Assert.IsFalse(target.IsValid(invalidLink3)); }
public EditorTestToolset WithPythonToolsService() { _serviceProvider.AddService(typeof(IPythonToolsOptionsService), new MockPythonToolsOptionsService()); _serviceProvider.AddService(typeof(PythonToolsService), new PythonToolsService(_serviceProvider)); return(this); }