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); } }); } }