public void AddCount()
        {
            var ind = new XmlStorageIndex(_driver);

            Assert.AreEqual(0, ind.Count());

            Assert.Catch <ArgumentNullException>(() => ind.Add(null));
            ind.Add(new StorageItem());
            Assert.AreEqual(1, ind.Count());
        }
        public void Remove()
        {
            var testname = "name";
            var ind      = new XmlStorageIndex(_driver);

            Assert.Catch <ArgumentNullException>(() => ind.Remove(null));

            ind.Add(new StorageItem {
                FileName = testname
            });
            Assert.AreEqual(1, ind.Count());
            ind.Remove(new StorageItem {
                FileName = testname
            });
            Assert.AreEqual(0, ind.Count());
        }
        public void GetIndexNotExist()
        {
            _driver.Exists(Arg.Is(XmlStorageIndex.IndexName)).Returns(false);

            var x = new XmlStorageIndex(_driver);

            Assert.AreEqual(x.Count(), 0);
        }
        public void GetIndexExistCorrupted(Stream stream)
        {
            _driver.Exists(Arg.Is(XmlStorageIndex.IndexName)).Returns(true);
            _driver.Read(Arg.Is(XmlStorageIndex.IndexName)).Returns(ux => stream);

            var x = new XmlStorageIndex(_driver);

            Assert.AreEqual(x.Count(), 0);
            Assert.DoesNotThrow(x.Save);
        }
        public void GetIndexExist(StorageItem[] items)
        {
            _driver.Exists(Arg.Is(XmlStorageIndex.IndexName)).Returns(false);

            var ind = new XmlStorageIndex(_driver);

            foreach (var storageItem in items)
            {
                ind.Add(storageItem);
            }
            ind.Save();

            _driver.Exists(Arg.Is(XmlStorageIndex.IndexName)).Returns(true);
            _driver.Read(Arg.Is(XmlStorageIndex.IndexName)).Returns(ux => File.OpenRead(XmlStorageIndex.IndexName));

            var x = new XmlStorageIndex(_driver);

            Assert.AreEqual(x.Count(), items.Length);
            Assert.DoesNotThrow(x.Save);
        }