2008 Advent Calendar December 15th

 

   1:      public class Advent15
   2:      {
   3:          private FileUtilWithDelete SetUpReadable(string content)
   4:          {
   5:              FileUtilWithDelete file = new FileUtilWithDelete("SomeFile.txt");
   6:              file.Create(content);
   7:              return file;
   8:          }
   9:   
  10:          private FileUtilWithDelete SetUpUnreadable(string content)
  11:          {
  12:              FileUtilWithDelete file = SetUpReadable(content);
  13:              file.Readable = false;
  14:              return file;
  15:          }
  16:   
  17:          [Fact]
  18:          public void TestReadReadableFile()
  19:          {
  20:              using (FileUtilWithDelete file = SetUpReadable("CONTENT"))
  21:              {
  22:                  string content = file.Read();
  23:                  Assert.Equal<string>("CONTENT", content);
  24:              }
  25:          }
  26:   
  27:          [Fact]
  28:          public void TestReadUnreadableFile()
  29:          {
  30:              using (FileUtilWithDelete file = SetUpUnreadable("SHOULD NOT BE ABLE TO READ THIS"))
  31:              {
  32:                  Assert.Throws<AccessViolationException>(() => { file.Read(); });
  33:              }
  34:          }
  35:      }

The two setup methods does not really feel necessary. Why not add another parameter to it and control readability that way?