public void BindingWorkflow_InitializeSolutionBinding_Update_NotAllUpToDate_SomeProjectsUpdated() { // Arrange var allProjects = new Project[] { new ProjectMock("csA.csproj"), new ProjectMock("csB.csproj"), new ProjectMock("csC.csproj"), new ProjectMock("csD.csproj") }; var unboundProjects = new Project[] { new ProjectMock("XXX.csproj"), allProjects[1], allProjects[3] }; var logger = new TestLogger(); var bindingInfoProvider = new ConfigurableSolutionBindingInformationProvider(); bindingInfoProvider.UnboundProjects = unboundProjects; // Act var result = BindingWorkflow.GetProjectsForRulesetBinding(false, allProjects, bindingInfoProvider, logger); // Assert result.Should().BeEquivalentTo(allProjects[1], allProjects[3]); logger.AssertOutputStringExists(Strings.Bind_Ruleset_SomeProjectsDoNotNeedToBeUpdated); logger.AssertPartialOutputStringExists("csA.csproj", "csC.csproj"); }
public void TestInit() { KnownUIContextsAccessor.Reset(); this.serviceProvider = new ConfigurableServiceProvider(); this.teamExplorerController = new ConfigurableTeamExplorerController(); this.infoBarManager = new ConfigurableInfoBarManager(); IComponentModel componentModel = ConfigurableComponentModel.CreateWithExports( new Export[] { MefTestHelpers.CreateExport<ITeamExplorerController>(this.teamExplorerController), MefTestHelpers.CreateExport<IInfoBarManager>(this.infoBarManager), }); this.serviceProvider.RegisterService(typeof(SComponentModel), componentModel); this.solutionBindingInformationProvider = new ConfigurableSolutionBindingInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionBindingInformationProvider), this.solutionBindingInformationProvider); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.solutionBindingSerializer = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(Persistence.ISolutionBindingSerializer), this.solutionBindingSerializer); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); this.stateManager = (ConfigurableStateManager)this.host.VisualStateManager; }
public void BindingWorkflow_ArgChecks() { var validHost = new ConfigurableHost(); var bindingArgs = new BindCommandArgs("key", "name", new ConnectionInformation(new Uri("http://server"))); var slnBindOp = new Mock <ISolutionBindingOperation>().Object; var nuGetOp = new Mock <INuGetBindingOperation>().Object; var bindingInfoProvider = new ConfigurableSolutionBindingInformationProvider(); // 1. Null host Action act = () => new BindingWorkflow(null, bindingArgs, slnBindOp, nuGetOp, bindingInfoProvider); act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("host"); // 2. Null binding args act = () => new BindingWorkflow(validHost, null, slnBindOp, nuGetOp, bindingInfoProvider); act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("bindingArgs"); // 3. Null solution binding operation act = () => new BindingWorkflow(validHost, bindingArgs, null, nuGetOp, bindingInfoProvider); act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("solutionBindingOperation"); // 4. Null NuGet operation act = () => new BindingWorkflow(validHost, bindingArgs, slnBindOp, null, bindingInfoProvider); act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("nugetBindingOperation"); // 5. Null binding info provider act = () => new BindingWorkflow(validHost, bindingArgs, slnBindOp, nuGetOp, null); act.Should().ThrowExactly <ArgumentNullException>().And.ParamName.Should().Be("bindingInformationProvider"); }
public void BindingWorkflow_InstallPackages_Succeeds_SuccessPropertyIsFalse() { // Arrange var bindingArgs = new BindCommandArgs("projectKey", "projectName", new ConnectionInformation(new Uri("http://connected"))); var slnBindOpMock = new Mock <ISolutionBindingOperation>(); var nugetMock = new Mock <INuGetBindingOperation>(); nugetMock.Setup(x => x.InstallPackages(It.IsAny <ISet <Project> >(), It.IsAny <IProgressController>(), It.IsAny <IProgressStepExecutionEvents>(), It.IsAny <CancellationToken>())).Returns(false); var bindingInfoProvider = new ConfigurableSolutionBindingInformationProvider(); var testSubject = new BindingWorkflow(this.host, bindingArgs, slnBindOpMock.Object, nugetMock.Object, bindingInfoProvider); ProjectMock project1 = new ProjectMock("project1") { ProjectKind = ProjectSystemHelper.CSharpProjectKind }; testSubject.BindingProjects.Clear(); testSubject.BindingProjects.Add(project1); var progressEvents = new ConfigurableProgressStepExecutionEvents(); var cts = new CancellationTokenSource(); testSubject.BindingOperationSucceeded = true; // Act testSubject.InstallPackages(new ConfigurableProgressController(), progressEvents, cts.Token); // Assert testSubject.BindingOperationSucceeded.Should().BeFalse(); }
public void TestInit() { KnownUIContextsAccessor.Reset(); this.serviceProvider = new ConfigurableServiceProvider(); this.teamExplorerController = new ConfigurableTeamExplorerController(); this.infoBarManager = new ConfigurableInfoBarManager(); IComponentModel componentModel = ConfigurableComponentModel.CreateWithExports( new Export[] { MefTestHelpers.CreateExport <ITeamExplorerController>(this.teamExplorerController), MefTestHelpers.CreateExport <IInfoBarManager>(this.infoBarManager), }); this.serviceProvider.RegisterService(typeof(SComponentModel), componentModel); this.solutionBindingInformationProvider = new ConfigurableSolutionBindingInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionBindingInformationProvider), this.solutionBindingInformationProvider); var outputWindow = new ConfigurableVsOutputWindow(); this.outputWindowPane = outputWindow.GetOrCreateSonarLintPane(); this.serviceProvider.RegisterService(typeof(SVsOutputWindow), outputWindow); this.solutionBindingSerializer = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(Persistence.ISolutionBindingSerializer), this.solutionBindingSerializer); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); this.stateManager = (ConfigurableStateManager)this.host.VisualStateManager; }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(false); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); var mefExport1 = MefTestHelpers.CreateExport <IHost>(this.host); this.activeSolutionTracker = new ConfigurableActiveSolutionTracker(); var mefExport2 = MefTestHelpers.CreateExport <IActiveSolutionTracker>(this.activeSolutionTracker); var mefModel = ConfigurableComponentModel.CreateWithExports(mefExport1, mefExport2); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel, replaceExisting: true); this.solutionMock = new SolutionMock(); this.serviceProvider.RegisterService(typeof(SVsSolution), this.solutionMock); this.errorListController = new ConfigurableErrorListInfoBarController(); this.serviceProvider.RegisterService(typeof(IErrorListInfoBarController), this.errorListController); this.solutionBindingInformationProvider = new ConfigurableSolutionBindingInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionBindingInformationProvider), this.solutionBindingInformationProvider); this.solutionBindingSerializer = new ConfigurableSolutionBindingSerializer(); this.serviceProvider.RegisterService(typeof(ISolutionBindingSerializer), solutionBindingSerializer); this.sonarLintOutputMock = new Mock <ISonarLintOutput>(); }
private BindingWorkflow CreateTestSubject(string projectKey = "anykey", string projectName = "anyname", INuGetBindingOperation nuGetBindingOperation = null) { this.host.SonarQubeService = this.sonarQubeServiceMock.Object; var bindingArgs = new BindCommandArgs(projectKey, projectName, new ConnectionInformation(new Uri("http://connected"))); var slnBindOperation = new SolutionBindingOperation(this.host, bindingArgs.Connection, projectKey, "projectName", SonarLintMode.LegacyConnected); var bindingInfoProvider = new ConfigurableSolutionBindingInformationProvider(); if (nuGetBindingOperation == null) { return(new BindingWorkflow(this.host, bindingArgs, slnBindOperation, new NoOpNuGetBindingOperation(this.host.Logger), bindingInfoProvider)); } return(new BindingWorkflow(this.host, bindingArgs, slnBindOperation, nuGetBindingOperation, bindingInfoProvider)); }
public void TestInitialize() { this.serviceProvider = new ConfigurableServiceProvider(false); this.host = new ConfigurableHost(this.serviceProvider, Dispatcher.CurrentDispatcher); var mefExport1 = MefTestHelpers.CreateExport<IHost>(this.host); this.activeSolutionTracker = new ConfigurableActiveSolutionTracker(); var mefExport2 = MefTestHelpers.CreateExport<IActiveSolutionTracker>(this.activeSolutionTracker); var mefModel = ConfigurableComponentModel.CreateWithExports(mefExport1, mefExport2); this.serviceProvider.RegisterService(typeof(SComponentModel), mefModel, replaceExisting: true); this.solutionMock = new SolutionMock(); this.serviceProvider.RegisterService(typeof(SVsSolution), this.solutionMock); this.errorListController = new ConfigurableErrorListInfoBarController(); this.serviceProvider.RegisterService(typeof(IErrorListInfoBarController), this.errorListController); this.solutionBindingInformationProvider = new ConfigurableSolutionBindingInformationProvider(); this.serviceProvider.RegisterService(typeof(ISolutionBindingInformationProvider), this.solutionBindingInformationProvider); }
public void BindingWorkflow_GetProjectsForRulesetBinding_NoProjectsUpToDate() { // Arrange var allProjects = new Project[] { new ProjectMock("cs1.csproj"), new ProjectMock("cs2.csproj"), new ProjectMock("cs3.csproj") }; var logger = new TestLogger(); var bindingInfoProvider = new ConfigurableSolutionBindingInformationProvider(); bindingInfoProvider.UnboundProjects = allProjects; // Act var result = BindingWorkflow.GetProjectsForRulesetBinding(false, allProjects, bindingInfoProvider, logger); // Assert result.Should().BeEquivalentTo(allProjects); logger.AssertOutputStringExists(Strings.Bind_Ruleset_AllProjectsNeedToBeUpdated); }