public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); this.dte = new DTEMock(); this.dte.Solution = new SolutionMock(dte, Path.Combine(this.TestContext.TestRunDirectory, this.TestContext.TestName, "solution.sln")); this.serviceProvider.RegisterService(typeof(DTE), this.dte); var outputWindow = new ConfigurableVsOutputWindow(); this.outputPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.store = new ConfigurableCredentialStore(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.projectSystemHelper.SolutionItemsProject = this.dte.Solution.AddOrGetProject("Solution Items"); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.sourceControlledFileSystem = new ConfigurableSourceControlledFileSystem(); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), this.sourceControlledFileSystem); this.solutionRuleSetsInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.solutionRuleSetsInfoProvider.SolutionRootFolder = Path.GetDirectoryName(this.dte.Solution.FilePath); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.solutionRuleSetsInfoProvider); var mefExport = MefTestHelpers.CreateExport <ILogger>(new SonarLintOutputLogger(serviceProvider)); var mefModel = ConfigurableComponentModel.CreateWithExports(mefExport); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectHelper); this.ruleSetInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.ruleSetInfoProvider.SolutionRootFolder = this.TestContext.TestRunDirectory; this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetInfoProvider); this.fileSystem = new ConfigurableFileSystem(); this.serviceProvider.RegisterService(typeof(IFileSystem), this.fileSystem); this.configProvider = new ConfigurableConfigurationProvider(); this.serviceProvider.RegisterService(typeof(IConfigurationProvider), this.configProvider); this.inspector = new ConfigurableRuleSetInspector(); this.serviceProvider.RegisterService(typeof(IRuleSetInspector), this.inspector); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.dte = new DTEMock(); this.projectHelper.CurrentActiveSolution = new SolutionMock(dte); this.testSubject = new ConflictsManager(serviceProvider, new SonarLintOutputLogger(serviceProvider)); }
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); }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.sonarQubeServiceMock = new Mock <ISonarQubeService>(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); var mockFileSystem = new MockFileSystem(); var sccFileSystem = new ConfigurableSourceControlledFileSystem(mockFileSystem); var ruleSerializer = new ConfigurableRuleSetSerializer(mockFileSystem); this.ruleSetsInformationProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), sccFileSystem); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), ruleSerializer); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetsInformationProvider); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectHelper); this.ruleSetInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.ruleSetInfoProvider.SolutionRootFolder = this.TestContext.TestRunDirectory; this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetInfoProvider); this.fileSystem = new ConfigurableFileSystem(); this.serviceProvider.RegisterService(typeof(IFileSystem), this.fileSystem); this.solutionBinding = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), this.solutionBinding); this.inspector = new ConfigurableRuleSetInspector(); this.serviceProvider.RegisterService(typeof(IRuleSetInspector), this.inspector); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.dte = new DTEMock(); this.projectHelper.CurrentActiveSolution = new SolutionMock(dte); }
public void TestInitialize() { this.activeSolutionBoundTracker = new ConfigurableActiveSolutionBoundTracker(); this.activeSolutionTracker = new ConfigurableActiveSolutionTracker(); var serviceProvider = new ConfigurableServiceProvider(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(serviceProvider); this.ruleSetProvider = new ConfigurableSolutionRuleSetsInformationProvider(); loggerMock = new Mock <ILogger>(); }
public void SolutionRuleSetsInformationProvider_CalculateSolutionSonarQubeRuleSetFilePath_OnClosedSolution() { // Setup var testSubject = new SolutionRuleSetsInformationProvider(this.serviceProvider); var projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); projectHelper.CurrentActiveSolution = new SolutionMock(null, "" /*When the solution is closed the file is empty*/); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectHelper); // Act + Verify Exceptions.Expect <InvalidOperationException>(() => testSubject.CalculateSolutionSonarQubeRuleSetFilePath("MyKey", Language.CSharp)); }
public void TestInitialize() { var provider = new ConfigurableServiceProvider(); this.projectSystem = new ConfigurableVsProjectSystemHelper(provider); provider.RegisterService(typeof(IProjectSystemHelper), projectSystem); this.host = new ConfigurableHost(provider, Dispatcher.CurrentDispatcher); var propertyManager = new ProjectPropertyManager(host); var mefModel = MefTestHelpers.CreateExport<IProjectPropertyManager>(propertyManager); provider.RegisterService(typeof(SComponentModel), mefModel); }
public void TestInitialize() { var provider = new ConfigurableServiceProvider(); this.projectSystem = new ConfigurableVsProjectSystemHelper(provider); provider.RegisterService(typeof(IProjectSystemHelper), projectSystem); this.host = new ConfigurableHost(provider, Dispatcher.CurrentDispatcher); var propertyManager = new ProjectPropertyManager(host); var mefModel = MefTestHelpers.CreateExport <IProjectPropertyManager>(propertyManager); provider.RegisterService(typeof(SComponentModel), mefModel); }
public void TestInitialize() { this.dte = new DTEMock(); this.serviceProvider = new ConfigurableServiceProvider(); this.solutionMock = new SolutionMock(dte, Path.Combine(SolutionRoot, "xxx.sln")); this.projectMock = this.solutionMock.AddOrGetProject(Path.Combine(SolutionRoot, @"Project\project.proj")); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); var outputWindow = new ConfigurableVsOutputWindow(); this.outputPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystemHelper); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); this.projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystem); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.bindingSerializer = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), this.bindingSerializer); }
public void SolutionRuleSetsInformationProvider_GetSolutionSonarQubeRulesFolder_OnClosedSolution() { // Setup var testSubject = new SolutionRuleSetsInformationProvider(this.serviceProvider); var projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); projectHelper.CurrentActiveSolution = new SolutionMock(null, "" /*When the solution is closed the file is empty*/); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectHelper); // // Act string path = testSubject.GetSolutionSonarQubeRulesFolder(); // Verify Assert.IsNull(path); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.bindingSerializer = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(Persistence.ISolutionBindingSerializer), this.bindingSerializer); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.ruleSetInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetInfoProvider); this.ruleSetSerializer = new ConfigurableRuleSetSerializer(); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), this.ruleSetSerializer); }
public void SolutionRuleSetsInformationProvider_GetSolutionSonarQubeRulesFolder_OnOpenSolution() { // Setup var testSubject = new SolutionRuleSetsInformationProvider(this.serviceProvider); var projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); projectHelper.CurrentActiveSolution = new SolutionMock(null, @"z:\folder\solution\solutionFile.sln"); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectHelper); // // Act string path = testSubject.GetSolutionSonarQubeRulesFolder(); // Verify Assert.AreEqual(@"z:\folder\solution\SonarQube", path); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); this.projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystem); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.configProvider = new ConfigurableConfigurationProvider { FolderPathToReturn = "c:\\test" }; this.serviceProvider.RegisterService(typeof(IConfigurationProviderService), this.configProvider); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.configProvider = new ConfigurableConfigurationProvider(); this.serviceProvider.RegisterService(typeof(IConfigurationProvider), this.configProvider); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.ruleSetInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetInfoProvider); this.ruleSetSerializer = new ConfigurableRuleSetSerializer(); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), this.ruleSetSerializer); this.fileMock = new Mock <IFile>(); }
public void TestInit() { this.serviceProvider = new ConfigurableServiceProvider(); this.configProvider = new ConfigurableConfigurationProvider(); this.serviceProvider.RegisterService(typeof(IConfigurationProvider), this.configProvider); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.ruleSetInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.ruleSetInfoProvider); this.ruleSetSerializer = new ConfigurableRuleSetSerializer(new MockFileSystem()); this.serviceProvider.RegisterService(typeof(IRuleSetSerializer), this.ruleSetSerializer); this.fileMock = new Mock <IFileSystem>(); fileMock.Setup(x => x.File.Exists(It.IsAny <string>())).Returns(false); }
public void ErrorListInfoBarController_Refresh_ActiveSolutionBoundAndFullyLoaded_HasNoUnboundProjects() { // Arrange this.SetBindingMode(SonarLintMode.LegacyConnected); var testSubject = new ErrorListInfoBarController(this.host, this.unboundProjectFinder); this.ConfigureLoadedSolution(hasUnboundProject: false); // Set project system with no filtered project, to quickly stop SonarQubeQualityProfileBackgroundProcessor var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); // Act testSubject.Refresh(); RunAsyncAction(); // Assert this.outputWindowPane.AssertOutputStrings(2); 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); }
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(); this.menuService = new ConfigurableMenuCommandService(); this.serviceProvider.RegisterService(typeof(IMenuCommandService), this.menuService); var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); var host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); var propManager = new ProjectPropertyManager(host); var propManagerExport = MefTestHelpers.CreateExport<IProjectPropertyManager>(propManager); var teController = new ConfigurableTeamExplorerController(); var teExport = MefTestHelpers.CreateExport<ITeamExplorerController>(teController); var mefModel = ConfigurableComponentModel.CreateWithExports(teExport, propManagerExport); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel); }
public void ErrorListInfoBarController_CurrentBackgroundProcessorCancellation() { // Arrange this.SetBindingMode(SonarLintMode.LegacyConnected); var testSubject = new ErrorListInfoBarController(this.host, this.unboundProjectFinder); 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.configProvider.ProjectToReturn.Profiles = new Dictionary <Language, ApplicableQualityProfile>(); this.configProvider.ProjectToReturn.Profiles[Language.CSharp] = new ApplicableQualityProfile { ProfileKey = "Profile", ProfileTimestamp = DateTime.Now }; this.configProvider.ModeToReturn = SonarLintMode.LegacyConnected; // Act testSubject.ProcessSolutionBinding(); // Assert testSubject.CurrentBackgroundProcessor?.BackgroundTask.Should().NotBeNull("Background task is expected"); testSubject.CurrentBackgroundProcessor.BackgroundTask.Wait(TimeSpan.FromSeconds(2)).Should().BeTrue("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.SetBindingMode(SonarLintMode.Standalone); // Assert 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(); this.menuService = new ConfigurableMenuCommandService(); this.serviceProvider.RegisterService(typeof(IMenuCommandService), this.menuService); var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); var host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); var propManager = new ProjectPropertyManager(host); var propManagerExport = MefTestHelpers.CreateExport <IProjectPropertyManager>(propManager); var teController = new ConfigurableTeamExplorerController(); var teExport = MefTestHelpers.CreateExport <ITeamExplorerController>(teController); var mefModel = ConfigurableComponentModel.CreateWithExports(teExport, propManagerExport); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel); }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(); this.dte = new DTEMock(); this.dte.Solution = new SolutionMock(dte, Path.Combine(this.TestContext.TestRunDirectory, this.TestContext.TestName, "solution.sln")); this.serviceProvider.RegisterService(typeof(DTE), this.dte); var outputWindow = new ConfigurableVsOutputWindow(); this.outputPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.store = new ConfigurableCredentialStore(); this.projectSystemHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.projectSystemHelper.SolutionItemsProject = this.dte.Solution.AddOrGetProject("Solution Items"); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), this.projectSystemHelper); this.sourceControlledFileSystem = new ConfigurableSourceControlledFileSystem(); this.serviceProvider.RegisterService(typeof(ISourceControlledFileSystem), this.sourceControlledFileSystem); this.solutionRuleSetsInfoProvider = new ConfigurableSolutionRuleSetsInformationProvider(); this.solutionRuleSetsInfoProvider.SolutionRootFolder = Path.GetDirectoryName(this.dte.Solution.FilePath); this.serviceProvider.RegisterService(typeof(ISolutionRuleSetsInformationProvider), this.solutionRuleSetsInfoProvider); }
public void SolutionRuleSetsInformationProvider_CalculateSolutionSonarQubeRuleSetFilePath_OnOpenSolution() { // Setup var testSubject = new SolutionRuleSetsInformationProvider(this.serviceProvider); var projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); projectHelper.CurrentActiveSolution = new SolutionMock(null, @"z:\folder\solution\solutionFile.sln"); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectHelper); // Case 1: VB + invalid path characters // Act string ruleSetPath = testSubject.CalculateSolutionSonarQubeRuleSetFilePath("MyKey" + Path.GetInvalidPathChars().First(), Language.VBNET); // Verify Assert.AreEqual(@"z:\folder\solution\SonarQube\MyKey_VB.ruleset", ruleSetPath); // Case 2: C# + valid path characters // Act ruleSetPath = testSubject.CalculateSolutionSonarQubeRuleSetFilePath("MyKey", Language.CSharp); // Verify Assert.AreEqual(@"z:\folder\solution\SonarQube\MyKeyCSharp.ruleset", ruleSetPath); }
public void ErrorListInfoBarController_Refresh_ActiveSolutionBoundAndFullyLoaded_HasNoUnboundProjects() { // Setup this.IsActiveSolutionBound = true; var testSubject = new ErrorListInfoBarController(this.host); this.ConfigureLoadedSolution(hasUnboundProject: false); // Set project system with no filtered project, to quickly stop SonarQubeQualityProfileBackgroundProcessor var projectSystem = new ConfigurableVsProjectSystemHelper(this.serviceProvider); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectSystem); // Act testSubject.Refresh(); RunAsyncAction(); // Verify this.outputWindowPane.AssertOutputStrings(2); this.infoBarManager.AssertHasNoAttachedInfoBar(ErrorListInfoBarController.ErrorListToolWindowGuid); }
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 static void SetBuildProperty(ConfigurableVsProjectSystemHelper projectSystemHelper, ProjectMock project, string propertyName, string propertyValue, string configurationName) { projectSystemHelper.SetProjectProperty(project, propertyName, propertyValue, configurationName); }
public void SolutionRuleSetsInformationProvider_CalculateSolutionSonarQubeRuleSetFilePath_OnClosedSolution() { // Setup var testSubject = new SolutionRuleSetsInformationProvider(this.serviceProvider); var projectHelper = new ConfigurableVsProjectSystemHelper(this.serviceProvider); projectHelper.CurrentActiveSolution = new SolutionMock(null, "" /*When the solution is closed the file is empty*/); this.serviceProvider.RegisterService(typeof(IProjectSystemHelper), projectHelper); // Act + Verify Exceptions.Expect<InvalidOperationException>(() => testSubject.CalculateSolutionSonarQubeRuleSetFilePath("MyKey", Language.CSharp)); }