Esempio n. 1
0
        public void UpdateTest()
        {
            var key = new Int32Key(42);
            var content = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            var changedContent = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};

            var storage = new CompositeStorage(new MemoryCompositeStorageConfigurator());
            var actual = storage.TryAdd(key, content);
            Assert.AreEqual(true, actual, "Unexpectedly failed to add content");

            actual = storage.TryUpdate(key, changedContent);
            Assert.AreEqual(true, actual, "Unexpectedly failed to update content");
        }
Esempio n. 2
0
        public void RemoveTest()
        {
            var entry = new Entry { Key = new Int32Key(1), ValueOffset = 0, ValueLength = 200 };
            var store = new FakeBinaryStore(EntryBinaryConverter.Instance.Convert(entry));

            bool isFragmented;
            var key = new Int32Key(1);
            var tableOfContent = TableOfContent.From(store, out isFragmented);
            Assert.IsFalse(isFragmented);
            Assert.IsTrue(tableOfContent.Contains(key));
            Assert.IsTrue(tableOfContent.TryRemove(key));
            Assert.IsFalse(tableOfContent.Contains(key));

            tableOfContent = TableOfContent.From(store, out isFragmented);
            Assert.IsTrue(isFragmented);
            Assert.IsFalse(tableOfContent.Contains(key));
        }
Esempio n. 3
0
        public void AddMultileAndRemoveTest()
        {
            var entry = new Entry { Key = new Int32Key(1), ValueOffset = 0, ValueLength = 200 };
            var store = new FakeBinaryStore(EntryBinaryConverter.Instance.Convert(entry));

            bool isFragmented;
            var tableOfContent = TableOfContent.From(store, out isFragmented);
            Assert.IsFalse(isFragmented);
            tableOfContent.Add(new Int32Key(2), 200, 215);
            tableOfContent.Add(new Int32Key(3), 415, 215);
            tableOfContent.Add(new Int32Key(4), 630, 230);
            tableOfContent.Add(new Int32Key(5), 860, 640);
            tableOfContent.Add(new Int32Key(6), 1500, 500);

            Assert.AreEqual(22 * 6, store.Length);
            Assert.AreEqual(22 * 6, store.CurrentOffset);

            var key1 = new Int32Key(1);
            var key2 = new Int32Key(2);
            var key3 = new Int32Key(3);

            Assert.IsTrue(tableOfContent.Contains(key1));
            Assert.IsTrue(tableOfContent.Contains(key2));
            Assert.IsTrue(tableOfContent.Contains(key3));
            Assert.IsTrue(tableOfContent.TryRemove(key2));
            Assert.IsTrue(tableOfContent.Contains(key1));
            Assert.IsFalse(tableOfContent.Contains(key2));
            Assert.IsTrue(tableOfContent.Contains(key3));

            Assert.IsTrue(tableOfContent.TryRemove(key3));
            Assert.IsTrue(tableOfContent.Contains(key1));
            Assert.IsFalse(tableOfContent.Contains(key2));
            Assert.IsFalse(tableOfContent.Contains(key3));

            tableOfContent = TableOfContent.From(store, out isFragmented);
            Assert.IsTrue(isFragmented);
            Assert.IsTrue(tableOfContent.Contains(key1));
            Assert.IsFalse(tableOfContent.Contains(key2));
            Assert.IsFalse(tableOfContent.Contains(key3));
        }