Exemplo n.º 1
0
            public void Should_Throw_If_Context_Is_Null()
            {
                // Given, When
                var result = Record.Exception(() =>
                    DirectoryAliases.CleanDirectory(null, "/Temp/Hello"));

                // Then
                Assert.IsArgumentNullException(result, "context");
            }
Exemplo n.º 2
0
            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");
            }
Exemplo n.º 3
0
            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));
            }
Exemplo n.º 4
0
            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"));
            }
Exemplo n.º 5
0
            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);
            }
Exemplo n.º 6
0
            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);
            }
Exemplo n.º 7
0
            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);
            }
Exemplo n.º 8
0
            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));
            }
Exemplo n.º 9
0
            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));
            }
Exemplo n.º 10
0
            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));
            }