public async Task RevertFileAsync_RevertsFile() { var projectFileContent = string.Format( CultureInfo.InvariantCulture, "<?xml version=\"1.0\" encoding=\"utf-8\"?>{0}<a>{0} <x>{0} <y />{0} <z>d</z>{0} </x>{0} <b>d</b>{0}</a>", Environment.NewLine); using (var test = new XmlTransformerTest(projectFileContent)) { var zipArchiveFilePath = Path.Combine(test.TestDirectory.Path, "archive.zip"); var zipFileInfo = new InternalZipFileInfo(zipArchiveFilePath, "xml.transform"); using (var zipFileStream = File.OpenWrite(zipArchiveFilePath)) using (var zipArchive = new ZipArchive(zipFileStream, ZipArchiveMode.Create)) { var content = Encoding.UTF8.GetBytes("<a><x><z>$c$</z></x></a>"); zipArchive.AddEntry(zipFileInfo.ZipArchiveEntryFullName, content); } File.WriteAllText(test.TargetFile.FullName, projectFileContent); test.ProjectSystem.Setup(x => x.FileExistsInProject(It.IsNotNull <string>())) .Returns(true); test.ProjectSystem.SetupGet(x => x.ProjectFullPath) .Returns(test.TargetFile.DirectoryName); test.ProjectSystem.SetupGet(x => x.NuGetProjectContext) .Returns(Mock.Of <INuGetProjectContext>()); test.ProjectSystem.Setup(x => x.GetPropertyValue(It.IsNotNull <string>())) .Returns("d"); test.ProjectSystem.Setup(x => x.RemoveFile(It.IsNotNull <string>())); await test.Transformer.RevertFileAsync( test.StreamTaskFactory, test.TargetFile.Name, new[] { zipFileInfo }, test.ProjectSystem.Object, CancellationToken.None); var expectedResult = string.Format( CultureInfo.InvariantCulture, "<?xml version=\"1.0\" encoding=\"utf-8\"?>{0}<a>{0} <x>{0} {0} <z>d</z>{0} </x>{0} {0}</a>", Environment.NewLine); var actualResult = File.ReadAllText(test.TargetFile.FullName); Assert.Equal(expectedResult, actualResult); } }
public async Task TransformFileAsync_TransformsFile() { using (var test = new XmlTransformerTest("<a><x><y /></x><b>$c$</b></a>")) { var projectFileOriginalContent = "<a><x /></a>"; File.WriteAllText(test.TargetFile.FullName, projectFileOriginalContent); test.ProjectSystem.Setup(x => x.FileExistsInProject(It.IsNotNull <string>())) .Returns(false); test.ProjectSystem.SetupGet(x => x.ProjectFullPath) .Returns(test.TargetFile.DirectoryName); test.ProjectSystem.SetupGet(x => x.NuGetProjectContext) .Returns(Mock.Of <INuGetProjectContext>()); test.ProjectSystem.Setup(x => x.GetPropertyValue(It.IsNotNull <string>())) .Returns("d"); test.ProjectSystem.Setup(x => x.AddFile(It.IsNotNull <string>(), It.IsNotNull <Stream>())) .Callback <string, Stream>( (targetFilePath, stream) => { Assert.Equal(test.TargetFile.Name, targetFilePath); stream.Seek(offset: 0, origin: SeekOrigin.Begin); using (var reader = new StreamReader(stream)) { var actualResult = reader.ReadToEnd(); var expectedResult = string.Format( CultureInfo.InvariantCulture, "<?xml version=\"1.0\" encoding=\"utf-8\"?>{0}<a>{0} <x>{0} <y />{0} </x>{0} <b>d</b>{0}</a>", Environment.NewLine); Assert.Equal(expectedResult, actualResult); } }); await test.Transformer.TransformFileAsync( test.StreamTaskFactory, test.TargetFile.Name, test.ProjectSystem.Object, CancellationToken.None); } }