public void GetIndexNotExist()
        {
            _driver.Exists(Arg.Is(XmlStorageIndex.IndexName)).Returns(false);

            var x = new XmlStorageIndex(_driver);

            Assert.AreEqual(x.Count(), 0);
        }
        public void SaveEmpty()
        {
            var ind = new XmlStorageIndex(_driver);

            var file = new FileInfo(XmlStorageIndex.IndexName);

            Assert.DoesNotThrow(ind.Save);
            Assert.IsTrue(file.Exists);
            Assert.Greater(file.Length, 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 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 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);
        }
Esempio n. 7
0
        public void Deduplication()
        {
            _driver.Write(Arg.Any <string>()).Returns(x => new MemoryStream());

            var index = new XmlStorageIndex(_driver);

            _driver.Exists(Arg.Any <string>()).Returns(true);
            _driver.GetLength(Arg.Is("f1")).Returns(3);
            _driver.GetLength(Arg.Is("f3")).Returns(3);
            _driver.GetLength(Arg.Is("f4")).Returns(3);
            _driver.Read(Arg.Is("f1")).Returns(new MemoryStream(new byte[] { 1, 2, 3 }));
            _driver.Read(Arg.Is("f3")).Returns(new MemoryStream(new byte[] { 1, 2, 3 }));
            _driver.Read(Arg.Is("f4")).Returns(new MemoryStream(new byte[] { 1, 2, 3 })
            {
                Position = 1
            });

            var storage = new XmlStorage(_driver, index);

            index.Add(new StorageItem {
                FileName = "f1", Url = "url1"
            });
            index.Add(new StorageItem {
                FileName = "f2", Url = "url2"
            });
            index.Add(new StorageItem {
                FileName = "f3", Url = "url3"
            });
            index.Add(new StorageItem {
                FileName = "f4", Url = "url4"
            });
            storage.Deduplication();

            Assert.IsTrue(index.Items.Any(x => x.FileName == "f2"));
            Assert.IsTrue(
                index.Items.Count(x => x.FileName == "f1") == 3 ||
                index.Items.Count(x => x.FileName == "f3") == 3 ||
                index.Items.Count(x => x.FileName == "f4") == 3
                );
        }
        public void Exists()
        {
            var filename = "testFilename";
            var item     = new StorageItem()
            {
                FileName = filename, Url = "testurl"
            };
            var ind = new XmlStorageIndex(_driver);

            Assert.Throws <ArgumentNullException>(() => ind.Get(null));
            Assert.Throws <ArgumentException>(() => ind.Get(new StorageItem()));
            Assert.DoesNotThrow(() => ind.Get(item));
            Assert.IsFalse(ind.Get(item) != null);
            ind.Add(new StorageItem {
                FileName = filename
            });
            Assert.IsTrue(ind.Get(item) != null);
            ind.Add(new StorageItem {
                Url = "testurl"
            });
            Assert.IsTrue(ind.Get(item) != null);
        }