public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.sonarQubeService = new ConfigurableSonarQubeServiceWrapper(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); var sccFileSystem = new ConfigurableSourceControlledFileSystem(); var ruleSerializer = new ConfigurableRuleSetSerializer(sccFileSystem); var solutionBinding = new ConfigurableSolutionBindingSerializer(); this.settings = new ConfigurableIntegrationSettings { AllowNuGetPackageInstall = true }; var mefExports = MefTestHelpers.CreateExport <IIntegrationSettings>(settings); var mefModel = ConfigurableComponentModel.CreateWithExports(mefExports); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), sccFileSystem); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), ruleSerializer); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), solutionBinding); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); }
private void ConfigureSonarQubeServiceWrapperWithServiceError() { var sqService = new ConfigurableSonarQubeServiceWrapper(); this.host.SonarQubeService = sqService; sqService.AllowConnections = false; }
private void ConfigureValidSonarQubeServiceWrapper(BoundSonarQubeProject binding, DateTime?timestamp, string qualityProfileKey, params Language[] expectedLanguageProfiles) { var sqService = new ConfigurableSonarQubeServiceWrapper(); this.host.SonarQubeService = sqService; sqService.AllowConnections = true; sqService.ExpectedConnection = binding.CreateConnectionInformation(); sqService.ExpectedProjectKey = binding.ProjectKey; foreach (Language language in expectedLanguageProfiles) { sqService.ReturnProfile[language] = new QualityProfile { Key = qualityProfileKey, Language = SonarQubeServiceWrapper.GetServerLanguageKey(language), QualityProfileTimestamp = timestamp }; } }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.sonarQubeService = new ConfigurableSonarQubeServiceWrapper(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); var sccFileSystem = new ConfigurableSourceControlledFileSystem(); var ruleSerializer = new ConfigurableRuleSetSerializer(sccFileSystem); var solutionBinding = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), sccFileSystem); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), ruleSerializer); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), solutionBinding); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); }
public void ErrorListInfoBarController_CurrentBackgroundProcessorCancellation() { // Setup this.IsActiveSolutionBound = true; var testSubject = new ErrorListInfoBarController(this.host); this.ConfigureLoadedSolution(hasUnboundProject: false); var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); var project = new ProjectMock("project.proj"); project.SetCSProjectKind(); projectSystem.FilteredProjects = new[] { project }; this.solutionBindingSerializer.CurrentBinding.Profiles = new Dictionary <Language, Persistence.ApplicableQualityProfile>(); this.solutionBindingSerializer.CurrentBinding.Profiles[Language.CSharp] = new Persistence.ApplicableQualityProfile { ProfileKey = "Profile", ProfileTimestamp = DateTime.Now }; var sqService = new ConfigurableSonarQubeServiceWrapper(); this.host.SonarQubeService = sqService; sqService.ReturnProfile[Language.CSharp] = new QualityProfile(); // Act testSubject.ProcessSolutionBinding(); // Verify Assert.IsNotNull(testSubject.CurrentBackgroundProcessor?.BackgroundTask, "Background task is expected"); Assert.IsTrue(testSubject.CurrentBackgroundProcessor.BackgroundTask.Wait(TimeSpan.FromSeconds(2)), "Timeout waiting for the background task"); this.infoBarManager.AssertHasNoAttachedInfoBar(ErrorListInfoBarController.ErrorListToolWindowGuid); // Act (refresh again and let the blocked UI thread run to completion) testSubject.ProcessSolutionBinding(); DispatcherHelper.DispatchFrame(DispatcherPriority.Normal); this.IsActiveSolutionBound = false; // Verify that no info bar was added (due to the last action in which the state will not cause the info bar to appear) this.infoBarManager.AssertHasNoAttachedInfoBar(ErrorListInfoBarController.ErrorListToolWindowGuid); }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.sonarQubeService = new ConfigurableSonarQubeServiceWrapper(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); var sccFileSystem = new ConfigurableSourceControlledFileSystem(); var ruleSerializer = new ConfigurableRuleSetSerializer(sccFileSystem); var solutionBinding = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), sccFileSystem); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), ruleSerializer); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), solutionBinding); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); }
public void ErrorListInfoBarController_CurrentBackgroundProcessorCancellation() { // Setup this.IsActiveSolutionBound = true; var testSubject = new ErrorListInfoBarController(this.host); this.ConfigureLoadedSolution(hasUnboundProject: false); var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); var project = new ProjectMock("project.proj"); project.SetCSProjectKind(); projectSystem.FilteredProjects = new[] { project }; this.solutionBindingSerializer.CurrentBinding.Profiles = new Dictionary<Language, Persistence.ApplicableQualityProfile>(); this.solutionBindingSerializer.CurrentBinding.Profiles[Language.CSharp] = new Persistence.ApplicableQualityProfile { ProfileKey = "Profile", ProfileTimestamp = DateTime.Now }; var sqService = new ConfigurableSonarQubeServiceWrapper(); this.host.SonarQubeService = sqService; sqService.ReturnProfile[Language.CSharp] = new QualityProfile(); // Act testSubject.ProcessSolutionBinding(); // Verify Assert.IsNotNull(testSubject.CurrentBackgroundProcessor?.BackgroundTask, "Background task is expected"); Assert.IsTrue(testSubject.CurrentBackgroundProcessor.BackgroundTask.Wait(TimeSpan.FromSeconds(2)), "Timeout waiting for the background task"); this.infoBarManager.AssertHasNoAttachedInfoBar(ErrorListInfoBarController.ErrorListToolWindowGuid); // Act (refresh again and let the blocked UI thread run to completion) testSubject.ProcessSolutionBinding(); DispatcherHelper.DispatchFrame(DispatcherPriority.Normal); this.IsActiveSolutionBound = false; // Verify that no info bar was added (due to the last action in which the state will not cause the info bar to appear) this.infoBarManager.AssertHasNoAttachedInfoBar(ErrorListInfoBarController.ErrorListToolWindowGuid); }
private void ConfigureValidSonarQubeServiceWrapper(BoundSonarQubeProject binding, DateTime? timestamp, string qualityProfileKey, params Language[] expectedLanguageProfiles) { var sqService = new ConfigurableSonarQubeServiceWrapper(); this.host.SonarQubeService = sqService; sqService.AllowConnections = true; sqService.ExpectedConnection = binding.CreateConnectionInformation(); sqService.ExpectedProjectKey = binding.ProjectKey; foreach (Language language in expectedLanguageProfiles) { sqService.ReturnProfile[language] = new QualityProfile { Key = qualityProfileKey, Language = SonarQubeServiceWrapper.GetServerLanguageKey(language), QualityProfileTimestamp = timestamp }; } }