1: public class Advent3 2: { 3: [Fact] 4: public void TestRead() 5: { 6: // Create a test file 7: IFileUtil file = new FileUtil("SomeFile.txt"); 8: file.Create("CONTENT"); 9:   10: // Should be able to read file 11: Assert.DoesNotThrow(() => { file.Read(); }); 12:   13: file.Readable = false; 14:   15: // Should NOT be able to read file. 16: Assert.Throws<AccessViolationException>(() => { file.Read(); }); 17:   18: // Clean up 19: file.Delete(); 20: } 21: }

Using XUnit.net asserts to verify exceptions is much better than what we did yesterday. Now the test starts to be small enough to be understood easily. But I think there is a major problem with this test. We're not only testing that we cannot read an unreadable file, I'm also verifying that I can read a readable file. I think this should be split up into two different tests and that is what will happen next.