public void InitializeSolutionBinding_Update_AllUpToDate_NoProjectsUpdated() { // Arrange var allProjects = new Project[] { new ProjectMock("cs1.csproj"), new ProjectMock("cs2.csproj"), new ProjectMock("cs3.csproj"), new ProjectMock("cs4.csproj") }; var logger = new TestLogger(); var finder = new ConfigurableUnboundProjectFinder { UnboundProjects = null }; // Act var result = BindingProcessImpl.GetProjectsForRulesetBinding(false, allProjects, finder, logger); // Assert result.Should().BeEmpty(); logger.AssertOutputStringExists(Strings.Bind_Ruleset_SomeProjectsDoNotNeedToBeUpdated); logger.AssertPartialOutputStringExists("cs1.csproj", "cs2.csproj", "cs3.csproj", "cs4.csproj"); }
public void 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 finder = new ConfigurableUnboundProjectFinder { UnboundProjects = unboundProjects }; // Act var result = BindingProcessImpl.GetProjectsForRulesetBinding(false, allProjects, finder, logger); // Assert result.Should().BeEquivalentTo(allProjects[1], allProjects[3]); logger.AssertOutputStringExists(Strings.Bind_Ruleset_SomeProjectsDoNotNeedToBeUpdated); logger.AssertPartialOutputStringExists("csA.csproj", "csC.csproj"); }
public void GetProjectsForRulesetBinding_NoProjectsUpToDate() { // Arrange var allProjects = new Project[] { new ProjectMock("cs1.csproj"), new ProjectMock("cs2.csproj"), new ProjectMock("cs3.csproj") }; var logger = new TestLogger(); var finder = new ConfigurableUnboundProjectFinder { UnboundProjects = allProjects }; // Act var result = BindingProcessImpl.GetProjectsForRulesetBinding(false, allProjects, finder, logger); // Assert result.Should().BeEquivalentTo(allProjects); logger.AssertOutputStringExists(Strings.Bind_Ruleset_AllProjectsNeedToBeUpdated); }
public void 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 <IProgress <FixedStepsProgress> >(), It.IsAny <CancellationToken>())).Returns(false); var finder = new ConfigurableUnboundProjectFinder(); var configProvider = new Mock <IBindingConfigProvider>(); var testSubject = new BindingProcessImpl(this.host, bindingArgs, slnBindOpMock.Object, nugetMock.Object, finder, configProvider.Object, SonarLintMode.Connected); ProjectMock project1 = new ProjectMock("project1") { ProjectKind = ProjectSystemHelper.CSharpProjectKind }; testSubject.InternalState.BindingProjects.Clear(); testSubject.InternalState.BindingProjects.Add(project1); var progressEvents = new ConfigurableProgressStepExecutionEvents(); var progressAdapter = new FixedStepsProgressAdapter(progressEvents); var cts = new CancellationTokenSource(); testSubject.InternalState.BindingOperationSucceeded = true; // Act testSubject.InstallPackages(progressAdapter, cts.Token); // Assert testSubject.InternalState.BindingOperationSucceeded.Should().BeFalse(); }