Пример #1
0
        public void TestDelete()
        {
            var directories = new List <DirectoryInfo>()
            {
                new DirectoryInfo(Path.Combine(GetPath(), "Dir0")),
                new DirectoryInfo(Path.Combine(GetPath(), "Dir1")),
                new DirectoryInfo(Path.Combine(GetPath(), "Dir2")),
                new DirectoryInfo(Path.Combine(GetPath(), "Dir3")),
            };

            directories.ForEach(d =>
            {
                d.Create();
                d.Refresh();
            });

            try
            {
                directories.ForEach(d =>
                {
                    Assert.IsTrue(d.Exists);
                });

                var storage = new DirectoryStorage(GetDirectory());
                for (int i = 0; i < directories.Count; i++)
                {
                    Assert.IsTrue(storage.Exists($"Dir{i}"));
                }
                storage.Delete("Dir3");
                for (int i = 0; i < directories.Count; i++)
                {
                    directories[i].Refresh();
                    if (i == directories.Count - 1)
                    {
                        Assert.IsFalse(directories[i].Exists);
                        Assert.IsFalse(storage.Exists($"Dir{i}"));
                    }
                    else
                    {
                        Assert.IsTrue(directories[i].Exists);
                        Assert.IsTrue(storage.Exists($"Dir{i}"));
                    }
                }

                storage.DeleteAll();
                for (int i = 0; i < directories.Count; i++)
                {
                    directories[i].Refresh();
                    Assert.IsFalse(directories[i].Exists);
                    Assert.IsFalse(storage.Exists($"Dir{i}"));
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                directories.ForEach(d =>
                {
                    d.Refresh();
                    if (d.Exists)
                    {
                        d.Delete(true);
                    }
                });
            }
        }