public void TestFindInternal() { clonedCache.Add(new MyKey("key1"), new MyValue("value1")); myDataCache.Add(new MyKey("key2"), new MyValue("value2")); myDataCache.InnerDict.Add(new MyKey("key3"), new MyValue("value3")); var items = clonedCache.Find(new MyKey("key1").ToArray()); items.ElementAt(0).Key.Should().Be(new MyKey("key1")); items.ElementAt(0).Value.Should().Be(new MyValue("value1")); items.Count().Should().Be(1); items = clonedCache.Find(new MyKey("key2").ToArray()); items.ElementAt(0).Key.Should().Be(new MyKey("key2")); new MyValue("value2").Should().Be(items.ElementAt(0).Value); items.Count().Should().Be(1); items = clonedCache.Find(new MyKey("key3").ToArray()); items.ElementAt(0).Key.Should().Be(new MyKey("key3")); new MyValue("value3").Should().Be(items.ElementAt(0).Value); items.Count().Should().Be(1); items = clonedCache.Find(new MyKey("key4").ToArray()); items.Count().Should().Be(0); }
public void TestCachedFind_Empty() { var snapshot = TestBlockchain.GetTestSnapshot(); var storages = snapshot.CreateSnapshot(); var cache = new ClonedCache(storages); cache.Add ( new StorageKey() { Key = new byte[] { 0x00, 0x02 }, Id = 0 }, new StorageItem() { Value = new byte[] { } } ); cache.Add ( new StorageKey() { Key = new byte[] { 0x01, 0x02 }, Id = 0 }, new StorageItem() { Value = new byte[] { } } ); CollectionAssert.AreEqual( cache.Find(new byte[5]).Select(u => u.Key.Key[1]).ToArray(), new byte[] { 0x02 } ); }
public void TestCachedFind_Last() { var snapshot = Blockchain.Singleton.GetSnapshot(); var storages = snapshot.CreateSnapshot(); var cache = new ClonedCache(storages); storages.Add ( new StorageKey() { Key = new byte[] { 0x00, 0x01 }, Id = 0 }, new StorageItem() { IsConstant = false, Value = new byte[] { } } ); storages.Add ( new StorageKey() { Key = new byte[] { 0x01, 0x01 }, Id = 0 }, new StorageItem() { IsConstant = false, Value = new byte[] { } } ); cache.Add ( new StorageKey() { Key = new byte[] { 0x00, 0x02 }, Id = 0 }, new StorageItem() { IsConstant = false, Value = new byte[] { } } ); cache.Add ( new StorageKey() { Key = new byte[] { 0x01, 0x02 }, Id = 0 }, new StorageItem() { IsConstant = false, Value = new byte[] { } } ); CollectionAssert.AreEqual(cache.Find(new byte[5]).Select(u => u.Key.Key[1]).ToArray(), new byte[] { 0x01, 0x02 } ); }