Exemple #1
0
        public async Task SimilarName()
        {
            var embeddedNameGroups = EmbeddedTestFileGrouper.Group("ProjectRenameTests.BeforeMultipleSimilar", "ProjectRenameTests.SimilarRename").ToArray();
            var fileSystemMock     = new FileSystemMock();

            var beforePaths = new[]
            {
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Application\Company.Desktop.Application.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Application.sln",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Controls\Company.Desktop.Framework.Controls.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework\Company.Desktop.Framework.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Mvvm.Abstraction\Company.Desktop.Framework.Mvvm.Abstraction.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Mvvm\Company.Desktop.Framework.Mvvm.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Models.Abstraction\Company.Desktop.Models.Abstraction.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Models\Company.Desktop.Models.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Shared\Company.Desktop.Shared.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.ViewModels\Company.Desktop.ViewModels.csproj",
            };

            var afterPaths = new[]
            {
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Application\Company.Desktop.Application.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Application.sln",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Controls\Company.Desktop.Framework.Controls.csproj",
                @"D:\GitHub\Projects\Wpf\Framework\Framework.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Mvvm.Abstraction\Company.Desktop.Framework.Mvvm.Abstraction.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Framework.Mvvm\Company.Desktop.Framework.Mvvm.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Models.Abstraction\Company.Desktop.Models.Abstraction.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Models\Company.Desktop.Models.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.Shared\Company.Desktop.Shared.csproj",
                @"D:\GitHub\Projects\Wpf\Company.Desktop.ViewModels\Company.Desktop.ViewModels.csproj",
            };

            for (var index = 0; index < embeddedNameGroups.Length; index++)
            {
                var tuple = embeddedNameGroups[index];
                using (var stream = EmbeddedTestFileUtility.GetFileStream(tuple.before, true))
                {
                    await fileSystemMock.WriteAsync(beforePaths[index], await stream.ReadToEndAsync(), Encoding.UTF8);
                }
            }

            var options = new MoverToolOptions();

            options.ProjectPathTransformer = new SingleProjectRenamer("Company.Desktop.Framework", "Framework");
            options.FileSystem             = fileSystemMock;
            var moverTool = new MoverTool(new[] { beforePaths[3] }, beforePaths[1], @"D:\GitHub\Projects\Wpf\", options);
            await moverTool.MoveAsync();

            for (var index = 0; index < embeddedNameGroups.Length; index++)
            {
                var tuple = embeddedNameGroups[index];
                using (var stream = EmbeddedTestFileUtility.GetFileStream(tuple.after, true))
                {
                    var isState = await fileSystemMock.ReadAsync(afterPaths[index]);

                    var shouldState = await stream.ReadToEndAsync();

                    isState.ShouldBe(shouldState);
                }
            }
        }