public void Should_Throw_If_Context_Is_Null() { // Given, When var result = Record.Exception(() => DirectoryAliases.CleanDirectory(null, "/Temp/Hello")); // Then Assert.IsArgumentNullException(result, "context"); }
public void Should_Throw_If_Directory_Are_Null() { // Given var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(Substitute.For<IFileSystem>()); // When var result = Record.Exception(() => DirectoryAliases.CleanDirectory(context, null)); // Then Assert.IsArgumentNullException(result, "path"); }
public void Should_Delete_Files_In_Provided_Directory() { // Given var directory = new DirectoryPath("/Temp/Hello"); var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); // When DirectoryAliases.CleanDirectory(context, directory); // Then Assert.Empty(fixture.FileSystem.GetDirectory(directory).GetFiles("*", SearchScope.Recursive)); }
public void Should_Create_Directory_If_Missing() { // Given var directory = new DirectoryPath("/NonExisting"); var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); // When DirectoryAliases.CleanDirectory(context, directory); // Then Assert.True(fixture.FileSystem.Exist((DirectoryPath)"/NonExisting")); }
public void Should_Leave_Provided_Directory_Itself_Intact() { // Given var directory = new DirectoryPath("/Temp/Hello"); var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); // When DirectoryAliases.CleanDirectory(context, directory); // Then Assert.True(fixture.FileSystem.GetDirectory(directory).Exists); }
public void Should_Delete_Directories_Respecting_Predicate_In_Provided_Directory() { // Given var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); var directory = fixture.FileSystem.GetDirectory("/Temp/Hello"); // When DirectoryAliases.CleanDirectory(context, directory.Path, info => !info.Hidden); // Then Assert.Equal(1, directory.GetDirectories("*", SearchScope.Recursive).Count()); Assert.True(fixture.FileSystem.GetDirectory("/Temp/Hello/Hidden").Exists); }
public void Should_Skip_Predicate_Folder() { // Given var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); var directory = context.FileSystem.GetDirectory("/Temp"); // When DirectoryAliases.CleanDirectory(context, directory.Path, predicate => predicate.Path.FullPath != "/Temp/Goodbye"); // Then Assert.True(context.FileSystem.GetDirectory("/Temp").Exists); Assert.Equal(1, directory.GetDirectories("*", SearchScope.Recursive).Count()); Assert.True(context.FileSystem.GetDirectory("/Temp/Goodbye").Exists); }
public void Should_Delete_Files_And_Directories_In_Provided_Directory_Using_Relative_Path() { // Given var directory = new DirectoryPath("./Hello"); var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); context.Environment.WorkingDirectory.Returns(info => new DirectoryPath("/Temp")); // When DirectoryAliases.CleanDirectory(context, directory); // Then Assert.Empty(fixture.FileSystem.GetDirectory(directory).GetFiles("*", SearchScope.Recursive)); Assert.Empty(fixture.FileSystem.GetDirectory(directory).GetDirectories("*", SearchScope.Recursive)); }
public void Should_Skip_Predicate_Folder() { // Given var directory = new DirectoryPath("/Temp"); var fixture = new FileSystemFixture(); var context = Substitute.For <ICakeContext>(); context.FileSystem.Returns(fixture.FileSystem); var preHelloFiles = context.FileSystem .GetDirectory("/Temp/Hello/") .GetFiles("*.*", SearchScope.Recursive) .Select(file => file.Path.FullPath) .ToArray(); var preGoodbyeFiles = context.FileSystem .GetDirectory("/Temp/Goodbye/") .GetFiles("*.*", SearchScope.Recursive) .Select(file => file.Path.FullPath) .ToArray(); // When DirectoryAliases.CleanDirectory(context, directory, predicate => predicate.Path.FullPath != "/Temp/Goodbye"); // Then var postHelloFiles = context.FileSystem .GetDirectory("/Temp/Hello/") .GetFiles("*.*", SearchScope.Recursive) .Select(file => file.Path.FullPath) .ToArray(); var postGoodbyeFiles = context.FileSystem .GetDirectory("/Temp/Goodbye/") .GetFiles("*.*", SearchScope.Recursive) .Select(file => file.Path.FullPath) .ToArray(); Assert.DoesNotContain(preHelloFiles, fileName => fixture.FileSystem.Exist((FilePath)fileName)); Assert.Empty(postHelloFiles); Assert.Equal(preGoodbyeFiles, postGoodbyeFiles); Assert.All(preGoodbyeFiles, fileName => fixture.FileSystem.Exist((FilePath)fileName)); }
public void Should_Delete_Files_Respecting_Predicate_In_Provided_Directory() { // Given var directory = new DirectoryPath("/Temp/Hello"); var fixture = new FileSystemFixture(); var context = Substitute.For<ICakeContext>(); Func<IFileSystemInfo, bool> wherePredicate = entry => !entry.Hidden; context.FileSystem.Returns(fixture.FileSystem); var filesNotMatchingPredicate = fixture .FileSystem .GetDirectory(directory) .GetFiles("*", SearchScope.Recursive) .Where(entry => !wherePredicate(entry)) .ToArray(); // When DirectoryAliases.CleanDirectory(context, directory, wherePredicate); // Then Assert.Empty(fixture.FileSystem.GetDirectory(directory).GetFiles("*", SearchScope.Recursive).Where(wherePredicate)); Assert.Equal(filesNotMatchingPredicate, fixture.FileSystem.GetDirectory(directory).GetFiles("*", SearchScope.Recursive)); }