public void BuildFileShareSafeStreamWriter_InvalidDir_ThrowsArgumentException()
        {
            string testFile = Path.Combine(Directory.GetCurrentDirectory(), "UnitTesting", "TESTFILE.txt");

            Directory.CreateDirectory(Path.GetDirectoryName(testFile));
            Directory.Delete(Path.GetDirectoryName(testFile), true);

            Assert.Throws <ArgumentException>(() => IoHelper.BuildFileShareSafeStreamWriter(testFile));
        }
        public void BuildFileShareSafeStreamWriter_InvalidFileName_ThrowsArgumentException()
        {
            string testFile = Path.Combine(Directory.GetCurrentDirectory(), "UnitTesting\\");

            Directory.CreateDirectory(Path.GetDirectoryName(testFile));

            testFile += new string(Path.GetInvalidFileNameChars().Take(6).ToArray());

            Assert.Throws <ArgumentException>(() => IoHelper.BuildFileShareSafeStreamWriter(testFile));
        }
        public void BuildFileShareSafeStreamWriter_ValidFile_CannotOpenSecondStreamForReads()
        {
            string testFile = Path.Combine(Directory.GetCurrentDirectory(), "UnitTesting", "TESTFILE.txt");

            Directory.CreateDirectory(Path.GetDirectoryName(testFile));

            using (StreamWriter sw = IoHelper.BuildFileShareSafeStreamWriter(testFile))
            {
                Assert.Throws <IOException>(() => File.OpenRead(testFile));
            }
        }