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); }
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); }
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); } }
public void TruncatedNewFileCanBeWrittenTo() { using var testEnvironementProvider = CreateTestEnvironmentProvider(); SetupTestEnvironment(testEnvironementProvider.RootDirectory); var builder = new FileOpeningBuilder() .Write(true) .Create(true) .Truncate(true); AssertThatFileContainsWrittenContent(builder, NonExistentFile, ContentToWrite); }
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); } }
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); } }
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); }