public async Task ApplyTests(string projectPath, FileUpdaterResult expectedResult) { // Arrange using var mock = await GetMock(projectPath).ConfigureAwait(true); var context = mock.Mock <IUpgradeContext>().Object; var updater = mock.Create <RazorHelperUpdater>(); var inputs = await GetRazorCodeDocumentsAsync(mock).ConfigureAwait(true); // Act var result = await updater.ApplyAsync(context, inputs, CancellationToken.None).ConfigureAwait(true); // Assert var fileUpdaterResult = Assert.IsType <FileUpdaterResult>(result); Assert.True(fileUpdaterResult.Result); Assert.Collection(fileUpdaterResult.FilePaths, expectedResult.FilePaths.Select <string, Action <string> >(e => a => Assert.EndsWith(e, a, StringComparison.Ordinal)).ToArray()); // Confirm that files are updated as expected var projectFiles = context.CurrentProject !.FileInfo.Directory !.GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true }); var expectedFiles = new DirectoryInfo($"{Path.GetDirectoryName(projectPath)}.Fixed").GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true }); Assert.Collection(projectFiles, expectedFiles.Select <FileInfo, Action <FileInfo> >(e => a => { Assert.Equal(File.ReadAllText(e.FullName), File.ReadAllText(a.FullName)); }).ToArray()); }
public async Task IsApplicableTests(string projectPath, FileUpdaterResult expectedResult) { // Arrange using var mock = await GetMock(projectPath).ConfigureAwait(true); var context = mock.Mock <IUpgradeContext>(); var updater = mock.Create <RazorHelperUpdater>(); var inputs = await GetRazorCodeDocumentsAsync(mock).ConfigureAwait(true); // Act var result = await updater.IsApplicableAsync(context.Object, inputs, CancellationToken.None).ConfigureAwait(true); // Assert var fileUpdaterResult = Assert.IsType <FileUpdaterResult>(result); Assert.Equal(expectedResult.Result, fileUpdaterResult.Result); Assert.Collection(fileUpdaterResult.FilePaths, expectedResult.FilePaths.Select <string, Action <string> >(e => a => Assert.EndsWith(e, a, StringComparison.Ordinal)).ToArray()); }