public async Task TextFileRamDiskArray_Tests_GetDiskNames_IsOfType_List_String()
        {
            // ILogger will only print to Output when tests are run in Debug mode.
            ILogger logger = new Logger();

            logger.SetWorker(
                (type, loggingLevel, logAction, message) =>
                {
                    Debug.WriteLine("ILogger: {0}, {1}, {2}, {3}", type, loggingLevel, logAction, message);
                }
                );

            logger.Log(this.GetType(), LoggingLevel.System, LogAction.UnitTestStart, "TextFileRamDiskArray_Tests_GetDiskNames_IsOfType_List_String");

            var diskArray = new TextFileRamDiskArray(logger: logger);

            var disknames = diskArray.GetDiskNames();

            Assert.IsTrue(disknames.Count.Equals(0));
            Assert.IsInstanceOfType(disknames, typeof (List<string>));

            logger.Log(this.GetType(), LoggingLevel.System, LogAction.UnitTestEnd, "TextFileRamDiskArray_Tests_GetDiskNames_IsOfType_List_String");
        }
        public async Task TextFileRamDiskArray_Tests_Write_Read_Alternate_DiskContent()
        {
            // ILogger will only print to Output when tests are run in Debug mode.
            ILogger logger = new Logger();

            logger.SetWorker(
                (type, loggingLevel, logAction, message) =>
                {
                    Debug.WriteLine("ILogger: {0}, {1}, {2}, {3}", type, loggingLevel, logAction, message);
                }
                );

            logger.Log(this.GetType(), LoggingLevel.System, LogAction.UnitTestStart, "TextFileRamDiskArray_Tests_Write_Read_Alternate_DiskContent");

            var diskArray = new TextFileRamDiskArray(logger: logger);

            var disknames = diskArray.GetDiskNames();

            Assert.IsTrue(disknames.Count.Equals(0));
            Assert.IsInstanceOfType(disknames, typeof (List<string>));

            Assert.IsFalse(diskArray.DiskExists("C"));
            diskArray.AddDisk("C");
            Assert.IsFalse(diskArray.DiskExists("C"));
            Assert.IsTrue(diskArray.DiskExists("c"));
            var diskC = diskArray.GetDisk("c");
            Assert.IsTrue(diskArray.GetDiskNames().Count.Equals(1));

            Assert.IsFalse(diskArray.DiskExists("D"));
            diskArray.AddDisk("D");
            Assert.IsFalse(diskArray.DiskExists("D"));
            Assert.IsTrue(diskArray.DiskExists("d"));
            var diskD = diskArray.GetDisk("d");
            Assert.IsTrue(diskArray.GetDiskNames().Count.Equals(2));

            diskC.AddDirectory("testDirectoryName");
            diskD.AddDirectory("testDirectoryName");

            var cdirectory = diskC.GetDirectory("testDirectoryName");
            var ddirectory = diskD.GetDirectory("testDirectoryName");

            var cFile = cdirectory.OpenWriter("testFileName.txt", false);
            await cFile.WriteAsync("The quick brown fox ");
            cFile.Close();

            var dFile = ddirectory.OpenWriter("testFileName.txt", false);
            await dFile.WriteAsync("jumped over the lazy dog");
            dFile.Close();

            Assert.IsTrue(cdirectory.FileExists("testFileName.txt"));
            Assert.IsTrue(ddirectory.FileExists("testFileName.txt"));

            var newCfileObj = cdirectory.OpenReader("testFileName.txt");
            var newDfileObj = ddirectory.OpenReader("testFileName.txt");

            Assert.IsTrue(
                string.Format("{0}{1}", await newCfileObj.ReadToEndAsync(), await newDfileObj.ReadToEndAsync())
                    .Equals("The quick brown fox jumped over the lazy dog"));

            logger.Log(this.GetType(), LoggingLevel.System, LogAction.UnitTestEnd, "TextFileRamDiskArray_Tests_Write_Read_Alternate_DiskContent");
        }