public void CallingModifiersCreatesACopy(Func <IFileOpeningBuilder, IFileOpeningBuilder> applyModifier)
        {
            var builderOne = new FileOpeningBuilder();
            var builderTwo = applyModifier(builderOne);

            Assert.NotEqual(builderOne, builderTwo);
        }
        public void WritingOnExistingFileOverwritesContents(TestFileData testFileData)
        {
            var builder = new FileOpeningBuilder()
                          .Write(true);

            AssertThatFileContainsWrittenContent(builder, testFileData, ContentToWrite);
        }
        public void ForceCreatesAndWritesFile()
        {
            var builder = new FileOpeningBuilder()
                          .Write(true)
                          .CreateNew(true);

            AssertThatFileContainsWrittenContent(builder, NonExistentFile, ContentToWrite);
        }
        public void WritingToFileWithCreateAndWriteOverwritesFile(TestFileData testFileData)
        {
            var builder = new FileOpeningBuilder()
                          .Write(true)
                          .Create(true);

            AssertThatFileContainsWrittenContent(builder, testFileData, ContentToWrite);
        }
Exemplo n.º 5
0
        public void CreatesAndReadsNewFile()
        {
            using var testEnvironmentProvider = CreateTestEnvironmentProvider();
            var getTestFilePath = SetupTestEnvironment(testEnvironmentProvider.RootDirectory);
            var builder         = new FileOpeningBuilder()
                                  .Read(true)
                                  .Create(true);

            AssertThatFileContains(builder, getTestFilePath(NonExistentFile.Name), string.Empty);
        }
Exemplo n.º 6
0
        public void ReadsWritableFiles(TestFileData testFileData)
        {
            using var testEnvironmentProvider = CreateTestEnvironmentProvider();
            var getTestFilePath = SetupTestEnvironment(testEnvironmentProvider.RootDirectory);
            var builder         = new FileOpeningBuilder()
                                  .Read(true)
                                  .Write(true);

            AssertThatFileContains(builder, getTestFilePath(testFileData.Name), testFileData.Content);
        }
        public void ForceCreatesAndWritesFileWhenUsingRedundantConfigurations()
        {
            var builder = new FileOpeningBuilder()
                          .Read(true)
                          .Write(true)
                          .Create(true)
                          .Truncate(true)
                          .CreateNew(true);

            AssertThatFileContainsWrittenContent(builder, NonExistentFile, ContentToWrite);
        }
 public void CreatesAndReadsNewFile()
 {
     var(testEnvironmentDisposable, getTestFilePath) = SetupTestEnvironment();
     using (testEnvironmentDisposable)
     {
         var builder = new FileOpeningBuilder()
                       .Read(true)
                       .Create(true);
         AssertThatFileContains(builder, getTestFilePath(NonExistentFile.Name), string.Empty);
     }
 }
Exemplo n.º 9
0
        public void TruncatedNewFileCanBeWrittenTo()
        {
            using var testEnvironementProvider = CreateTestEnvironmentProvider();
            SetupTestEnvironment(testEnvironementProvider.RootDirectory);
            var builder = new FileOpeningBuilder()
                          .Write(true)
                          .Create(true)
                          .Truncate(true);

            AssertThatFileContainsWrittenContent(builder, NonExistentFile, ContentToWrite);
        }
Exemplo n.º 10
0
        public void ReadsTruncatedFileDirectly(TestFileData testFileData)
        {
            using var testEnvironmentProvider = CreateTestEnvironmentProvider();
            var getTestFilePath = SetupTestEnvironment(testEnvironmentProvider.RootDirectory);
            var builder         = new FileOpeningBuilder()
                                  .Write(true)
                                  .Read(true)
                                  .Truncate(true);

            AssertThatFileContains(builder, getTestFilePath(testFileData.Name), string.Empty);
        }
 public void ReadsWritableFiles(TestFileData testFileData)
 {
     var(testEnvironmentDisposable, getTestFilePath) = SetupTestEnvironment();
     using (testEnvironmentDisposable)
     {
         var builder = new FileOpeningBuilder()
                       .Read(true)
                       .Write(true);
         AssertThatFileContains(builder, getTestFilePath(testFileData.Name), testFileData.Content);
     }
 }
 public void TruncatedNewFileCanBeWrittenTo()
 {
     var(testEnvironmentDisposable, _) = SetupTestEnvironment();
     using (testEnvironmentDisposable)
     {
         var builder = new FileOpeningBuilder()
                       .Write(true)
                       .Create(true)
                       .Truncate(true);
         AssertThatFileContainsWrittenContent(builder, NonExistentFile, ContentToWrite);
     }
 }
 public void ReadsTruncatedFileDirectly(TestFileData testFileData)
 {
     var(testEnvironmentDisposable, getTestFilePath) = SetupTestEnvironment();
     using (testEnvironmentDisposable)
     {
         var builder = new FileOpeningBuilder()
                       .Write(true)
                       .Read(true)
                       .Truncate(true);
         AssertThatFileContains(builder, getTestFilePath(testFileData.Name), string.Empty);
     }
 }
Exemplo n.º 14
0
        public void CreateNewThrowsWhenFileAlreadyExistsEvenIfTruncateIsSet()
        {
            using var testEnvironmentProvider = CreateTestEnvironmentProvider();
            var getTestFilePath = SetupTestEnvironment(testEnvironmentProvider.RootDirectory);
            var builder         = new FileOpeningBuilder()
                                  .Write(true)
                                  .CreateNew(true)
                                  .Truncate(true);

            Assert.Throws <IOException>(() =>
            {
                using var stream = builder.Open(getTestFilePath(RegularFile.Name));
            });
        }
        public void AppendsToExistingFile(TestFileData testFileData)
        {
            var(testEnvironmentDisposable, getTestFilePath) = SetupTestEnvironment();
            using (testEnvironmentDisposable)
            {
                using (var stream = new FileOpeningBuilder()
                                    .Append(true)
                                    .Open(getTestFilePath(testFileData.Name)))
                {
                    var bytes = System.Text.Encoding.UTF8.GetBytes(ContentToWrite);
                    stream.Write(bytes);
                }

                var expectedContent = testFileData.Content + ContentToWrite;
                AssertThatFileContains(getTestFilePath(testFileData.Name), expectedContent);
            }
        }
Exemplo n.º 16
0
        public void ReadingOverwrittenFileReturnsEmptyContent(TestFileData testFileData)
        {
            using var testEnvironmentProvider = CreateTestEnvironmentProvider();
            var getTestFilePath = SetupTestEnvironment(testEnvironmentProvider.RootDirectory);

            using var stream = new FileOpeningBuilder()
                               .Read(true)
                               .Write(true)
                               .Open(getTestFilePath(testFileData.Name));
            var bytes = System.Text.Encoding.UTF8.GetBytes(ContentToWrite);

            stream.Write(bytes);

            var content = ReadStream(stream);

            Assert.Empty(content);
        }
        public void ReadingOverwrittenFileReturnsEmptyContent(TestFileData testFileData)
        {
            var(testEnvironmentDisposable, getTestFilePath) = SetupTestEnvironment();
            using (testEnvironmentDisposable)
            {
                using (var stream = new FileOpeningBuilder()
                                    .Read(true)
                                    .Write(true)
                                    .Open(getTestFilePath(testFileData.Name)))
                {
                    var bytes = System.Text.Encoding.UTF8.GetBytes(ContentToWrite);
                    stream.Write(bytes);

                    var content = ReadStream(stream);
                    Assert.Empty(content);
                }
            }
        }
        private static void AssertThatFileContains(string path, string expectedContent)
        {
            var builder = new FileOpeningBuilder().Read(true);

            AssertThatFileContains(builder, path, expectedContent);
        }