public async Task IsApplicableTests(ProjectComponents component, bool expected) { // Arrange using var mock = AutoMock.GetLoose(); var logger = mock.Mock <ILogger <WinformsDefaultFontUpdater> >(); var updater = new WinformsDefaultFontUpdater(logger.Object); var projectFile = mock.Mock <IProjectFile>(); projectFile.Setup(f => f.IsSdk).Returns(true); var project = mock.Mock <IProject>(); project.Setup(p => p.GetFile()).Returns(projectFile.Object); project.Setup(p => p.FileInfo).Returns(new FileInfo("./test")); project.Setup(p => p.GetComponentsAsync(CancellationToken.None)).ReturnsAsync(component); var context = mock.Mock <IUpgradeContext>(); context.Setup(c => c.Projects).Returns(new[] { project.Object }); // Act var updaterResult = await updater.IsApplicableAsync(context.Object, ImmutableArray <IProject> .Empty.Add(project.Object), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expected, updaterResult.Result); }
public async Task IsApplicableMultiProjectTests(ProjectComponents component1, ProjectComponents component2, bool expected, string[] expectedFileLocations) { // Arrange using var mock = AutoMock.GetLoose(); var logger = mock.Mock <ILogger <WinformsDefaultFontUpdater> >(); var updater = new WinformsDefaultFontUpdater(logger.Object); var projectFile1 = new Mock <IProjectFile>(); projectFile1.Setup(f => f.IsSdk).Returns(true); var projectFile2 = new Mock <IProjectFile>(); projectFile2.Setup(f => f.IsSdk).Returns(true); var project1 = new Mock <IProject>(); project1.Setup(p => p.GetFile()).Returns(projectFile1.Object); project1.Setup(p => p.FileInfo).Returns(new FileInfo("./test1")); project1.Setup(p => p.GetComponentsAsync(CancellationToken.None)).ReturnsAsync(component1); var project2 = new Mock <IProject>(); project2.Setup(p => p.GetFile()).Returns(projectFile2.Object); project2.Setup(p => p.FileInfo).Returns(new FileInfo("./test2")); project2.Setup(p => p.GetComponentsAsync(CancellationToken.None)).ReturnsAsync(component2); var context = mock.Mock <IUpgradeContext>(); context.Setup(c => c.Projects).Returns(new[] { project1.Object, project2.Object }); // Act var updaterResult = (WindowsDesktopUpdaterResult)await updater.IsApplicableAsync(context.Object, context.Object.Projects.ToImmutableArray(), CancellationToken.None).ConfigureAwait(false); var fileLocations = updaterResult.FileLocations.Select(i => Path.GetFileNameWithoutExtension(i)); // Assert Assert.Equal(expected, updaterResult.Result); Assert.Equal(expectedFileLocations, fileLocations); }