public static CreateFiles ( IEnumerable |
||
fileNames | IEnumerable |
|
directory | string | |
return | List |
public void CtorWithStream() { // Arrange var builder = new PackageBuilder(); builder.Id = "Package"; builder.Version = new Version("1.0"); builder.Authors.Add("David"); builder.Description = "This is a test package"; builder.Files.AddRange(PackageUtility.CreateFiles(new[] { @"lib\40\A.dll", @"content\foo" })); var ms = new MemoryStream(); builder.Save(ms); ms.Seek(0, SeekOrigin.Begin); // Act var package = new ZipPackage(ms); // Assert Assert.AreEqual("Package", package.Id); Assert.AreEqual(new Version("1.0"), package.Version); Assert.AreEqual("David", package.Authors.First()); var files = package.GetFiles().ToList(); Assert.AreEqual(2, files.Count); Assert.AreEqual(@"content\foo", files[0].Path); Assert.AreEqual(@"lib\40\A.dll", files[1].Path); var assemblyReferences = package.AssemblyReferences.ToList(); Assert.AreEqual(1, assemblyReferences.Count); Assert.AreEqual("A.dll", assemblyReferences[0].Name); Assert.AreEqual(new FrameworkName(".NETFramework", new Version("4.0")), assemblyReferences[0].TargetFramework); }
public void AddFilesAskingForResolutionForEveryConflict() { var resolutions = new FileConflictResolution[] { FileConflictResolution.Ignore, FileConflictResolution.Overwrite, FileConflictResolution.Ignore, FileConflictResolution.IgnoreAll, FileConflictResolution.OverwriteAll, FileConflictResolution.Overwrite, }; var index = 0; var logger = new Mock <ILogger>(); logger.Setup(l => l.ResolveFileConflict(It.IsAny <string>())) .Returns(() => resolutions[index++]); // Arrange var project = new MockProjectSystem(); project.AddFile("a.txt", "this is a"); project.AddFile("b.txt", "this is b"); project.AddFile("c.txt", "this is c"); project.AddFile("d.txt", "this is d"); project.AddFile("e.txt", "this is e"); project.AddFile("f.txt", "this is f"); project.Logger = logger.Object; var files = PackageUtility.CreateFiles(new [] { "a.txt", "b.txt", "c.txt", "d.txt", "e.txt", "f.txt" }, "content"); // Act project.AddFiles(files, new Dictionary <FileTransformExtensions, IPackageFileTransformer>()); // Assert Assert.True(project.FileExists("a.txt")); Assert.True(project.FileExists("b.txt")); Assert.True(project.FileExists("c.txt")); Assert.True(project.FileExists("d.txt")); Assert.True(project.FileExists("e.txt")); Assert.True(project.FileExists("f.txt")); logger.Verify(l => l.ResolveFileConflict(It.IsAny <string>()), Times.Exactly(6)); Assert.Equal("this is a", project.ReadAllText("a.txt")); Assert.Equal("content\\b.txt", project.ReadAllText("b.txt")); Assert.Equal("this is c", project.ReadAllText("c.txt")); Assert.Equal("this is d", project.ReadAllText("d.txt")); Assert.Equal("content\\e.txt", project.ReadAllText("e.txt")); Assert.Equal("content\\f.txt", project.ReadAllText("f.txt")); }
public void AddFilesAddFilesToProjectSystem() { // Arrange var fileSystem = new MockProjectSystem(); var files = PackageUtility.CreateFiles(new[] { "A", "B", "C" }); // Act fileSystem.AddFiles(files, String.Empty); // Assert Assert.True(fileSystem.FileExists("A")); Assert.True(fileSystem.FileExists("B")); Assert.True(fileSystem.FileExists("C")); }
public void AddFilesAddFilesToProjectSystemIfNotExists() { // Arrange var mockFileSystem = new Mock <IFileSystem>(); mockFileSystem.Setup(m => m.Logger).Returns(NullLogger.Instance); mockFileSystem.Setup(m => m.AddFile(It.IsAny <string>(), It.IsAny <Stream>())).Verifiable(); mockFileSystem.Setup(m => m.FileExists("A")).Returns(true); var files = PackageUtility.CreateFiles(new[] { "A", "B", "C" }); // Act mockFileSystem.Object.AddFiles(files, String.Empty); // Assert mockFileSystem.Verify(m => m.AddFile("A", It.IsAny <Stream>()), Times.Never()); }
public void AddFilesDoNotCallResolveFileConflictIfThereIsNoFileConflict() { var logger = new Mock <ILogger>(); // Arrange var project = new MockProjectSystem(); project.AddFile("a.txt", "this is a"); project.AddFile("c.txt", "this is c"); project.Logger = logger.Object; var files = PackageUtility.CreateFiles(new[] { "b.txt", "d.txt" }, "content"); // Act project.AddFiles(files, new Dictionary <FileTransformExtensions, IPackageFileTransformer>()); // Assert logger.Verify(l => l.ResolveFileConflict(It.IsAny <string>()), Times.Never()); }
public void AddFilesCallResolveFileConflictIfThereIsFileConflict() { var logger = new Mock <ILogger>(); // Arrange var project = new MockProjectSystem(VersionUtility.ParseFrameworkName("net40"), "x:\\root"); project.AddFile("a.txt", "this is a"); project.AddFile("c.txt", "this is c"); project.Logger = logger.Object; var files = PackageUtility.CreateFiles(new[] { "a.txt", "b.txt" }, "content"); // Act project.AddFiles(files, new Dictionary <FileTransformExtensions, IPackageFileTransformer>()); // Assert logger.Verify(l => l.ResolveFileConflict("File 'a.txt' already exists in project 'x:\\root'. Do you want to overwrite it?"), Times.Once()); }
public void CtorWithStream() { // Arrange var builder = new PackageBuilder(); builder.Id = "Package"; builder.Version = new SemanticVersion("1.0"); builder.Authors.Add("David"); builder.Description = "This is a test package"; builder.ReleaseNotes = "This is a release note."; builder.Copyright = "Copyright"; builder.Files.AddRange(PackageUtility.CreateFiles(new[] { PathFixUtility.FixPath(@"lib\40\A.dll"), PathFixUtility.FixPath(@"content\foo") })); var ms = new MemoryStream(); builder.Save(ms); ms.Seek(0, SeekOrigin.Begin); // Act var package = new ZipPackage(ms); // Assert Assert.Equal("Package", package.Id); Assert.Equal(new SemanticVersion("1.0"), package.Version); Assert.Equal("David", package.Authors.First()); Assert.Equal("Copyright", package.Copyright); //Order is not gauranteed (or required) from GetFiles(), //but we rely on the order for a few of the asserts, //and it appears to not behave the same way on Mono, //so we call "order by" here to force a specific order. var files = package.GetFiles().OrderBy(k => k.Path).ToList(); Assert.Equal(2, files.Count); Assert.Equal(PathFixUtility.FixPath(@"content\foo"), files[0].Path); Assert.Equal(PathFixUtility.FixPath(@"lib\40\A.dll"), files[1].Path); var assemblyReferences = package.AssemblyReferences.ToList(); Assert.Equal(1, assemblyReferences.Count); Assert.Equal("A.dll", assemblyReferences[0].Name); Assert.Equal(new FrameworkName(".NETFramework", new Version("4.0")), assemblyReferences[0].TargetFramework); Assert.Equal("This is a release note.", package.ReleaseNotes); }
public void AddFilesDoNotCallResolveFileConflictIfTheConflictFileDoesNotBelongToProject() { var logger = new Mock <ILogger>(); // Arrange var project = new MockProjectSystem(); project.AddFile("a.txt", "this is a"); project.AddFile("b.txt", "this is b"); project.ExcludeFileFromProject("b.txt"); project.Logger = logger.Object; var files = PackageUtility.CreateFiles(new[] { "b.txt", "d.txt" }, "content"); // Act project.AddFiles(files, new Dictionary <FileTransformExtensions, IPackageFileTransformer>()); // Assert Assert.True(project.FileExists("d.txt")); Assert.False(project.FileExistsInProject("b.txt")); logger.Verify(l => l.ResolveFileConflict(It.IsAny <string>()), Times.Never()); }
private static MemoryStream GetPackageStream( IEnumerable <IPackageFile> files = null, IEnumerable <PackageReferenceSet> references = null) { var builder = new PackageBuilder(); builder.Id = "Package"; builder.Version = new SemanticVersion("1.0"); builder.Authors.Add("dotnetjunky"); builder.Description = "This is a test package"; builder.ReleaseNotes = "This is a release note."; builder.Copyright = "Copyright"; if (files != null) { builder.Files.AddRange(files); } else { builder.Files.AddRange( PackageUtility.CreateFiles( new[] { PathFixUtility.FixPath(@"lib\40\A.dll"), PathFixUtility.FixPath(@"content\foo") } )); } builder.FrameworkReferences.AddRange( new[] { new FrameworkAssemblyReference("A", new[] { VersionUtility.ParseFrameworkName("sl50") }), new FrameworkAssemblyReference("B", new[] { VersionUtility.ParseFrameworkName("windows8") }) }); if (references != null) { builder.PackageAssemblyReferences.AddRange(references); } var ms = new MemoryStream(); builder.Save(ms); ms.Seek(0, SeekOrigin.Begin); return(ms); }