private MockFile GetFileInfo(string filename, FileLockType lockNeeded)
{
if (filename == null)
throw new ArgumentNullException("filename");
if (filename.Trim() == string.Empty)
throw new ArgumentException("Empty filename");
MockFile finfo = m_existingFiles[GetKey(filename)];
if (lockNeeded == FileLockType.None)
return finfo;
switch (finfo.Lock)
{
case FileLockType.Read:
if (lockNeeded == FileLockType.Write)
throw new IOException("File " + filename + " is locked (open for read).");
break;
case FileLockType.Write:
throw new IOException("File " + filename + " is locked (open for write).");
}
return finfo;
}