예제 #1
0
        public void RedundantCreateWhileLocked()
        {
            string dir = Path.Combine(TemporaryDirectory, "DeleteMe");

            using (var dirLock = new DirectoryDeletionLock())
            {
                dirLock.CreateAndPreventDeletion(dir);
                Directory.CreateDirectory(dir);
            }
        }
예제 #2
0
        public void CanDeleteDirectoryAfterUnlocking()
        {
            string dir = Path.Combine(TemporaryDirectory, "DeleteMe");

            using (var dirLock = new DirectoryDeletionLock())
            {
                dirLock.CreateAndPreventDeletion(dir);
            }

            Directory.Delete(dir);
        }
예제 #3
0
        public void CannotDeleteLockedDirectory()
        {
            string dir = Path.Combine(TemporaryDirectory, "DeleteMe");

            using (var dirLock = new DirectoryDeletionLock())
            {
                dirLock.CreateAndPreventDeletion(dir);

                try
                {
                    Directory.Delete(dir);
                }
                catch (IOException)
                {
                    return;
                }

                XAssert.Fail("Expected a sharing violation");
            }
        }