Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/SafeFileWriterTest.cs =================================================================== diff -u -re35fa47ac631890035c1e409fbc0c63f03fd90ae -r881ed51d1135dd686552d03b0114a5a5f93f211b --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/SafeFileWriterTest.cs (.../SafeFileWriterTest.cs) (revision e35fa47ac631890035c1e409fbc0c63f03fd90ae) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/SafeFileWriterTest.cs (.../SafeFileWriterTest.cs) (revision 881ed51d1135dd686552d03b0114a5a5f93f211b) @@ -161,6 +161,38 @@ } [Test] + public void Perform_TargetFileReadOnly_ExpectedExceptionThrown() + { + // Setup + string writableDirectory = Path.Combine(testWorkDir, nameof(Perform_TargetFileReadOnly_ExpectedExceptionThrown)); + string targetFilePath = Path.Combine(writableDirectory, "targetFile.txt"); + + using (new DirectoryDisposeHelper(testWorkDir, nameof(Perform_TargetFileReadOnly_ExpectedExceptionThrown))) + using (new FileDisposeHelper(targetFilePath)) + { + var fileInfo = new FileInfo(targetFilePath) + { + IsReadOnly = true + }; + + try + { + var writer = new SafeFileWriter(targetFilePath); + + // Call + var exception = Assert.Throws(() => writer.Perform(() => {})); + + // Assert + Assert.AreEqual("Onvoldoende rechten voor het schrijven van het doelbestand.", exception.Message); + } + finally + { + fileInfo.IsReadOnly = false; + } + } + } + + [Test] public void Perform_TargetFileInUse_ExpectedExceptionThrown() { // Setup