Пример #1
0
        public async Task <StorageValue> GetStorage(StorageKey key)
        {
            var raw = await _rocksDbContext.Get(key.BuildStateStorageKey());

            return(raw == null
                ? null
                : _binarySerializer.Deserialize <StorageValue>(raw));
        }
Пример #2
0
        public async Task DeleteStorage_DeletesCorrectKey()
        {
            var inputHash = UInt160.Parse(RandomInt().ToString("X40"));
            var input     = new StorageKey {
                ScriptHash = inputHash, Key = new byte[0]
            };
            var redisDbContextMock = AutoMockContainer.GetMock <IRedisDbJsonContext>();
            var testee             = AutoMockContainer.Create <RedisDbJsonRepository>();

            await testee.DeleteStorage(input);

            redisDbContextMock.Verify(m => m.Delete(It.Is <RedisKey>(b => b == input.BuildStateStorageKey())));
        }
Пример #3
0
        public async Task AddStorage_WritesCorrectKeyValue()
        {
            var inputHash = UInt160.Parse(RandomInt().ToString("X40"));
            var inputKey  = new StorageKey {
                ScriptHash = inputHash, Key = new byte[0]
            };
            var inputValue = new StorageValue {
                Value = new byte[1]
            };
            var redisDbContextMock = AutoMockContainer.GetMock <IRedisDbJsonContext>();
            var testee             = AutoMockContainer.Create <RedisDbJsonRepository>();
            await testee.AddStorage(inputKey, inputValue);

            redisDbContextMock.Verify(m =>
                                      m.Set(It.Is <RedisKey>(b => b == inputKey.BuildStateStorageKey()), inputValue.Value));
        }
Пример #4
0
        public async Task GetStorage_NoValue_ReturnsNull()
        {
            var input = new StorageKey
            {
                ScriptHash = UInt160.Parse(RandomInt().ToString("X40")),
                Key        = new byte[1]
            };
            var redisDbContextMock = AutoMockContainer.GetMock <IRedisDbJsonContext>();

            redisDbContextMock
            .Setup(m => m.Get(It.Is <RedisKey>(b => b == input.BuildStateStorageKey())))
            .ReturnsAsync(RedisValue.Null);
            var testee = AutoMockContainer.Create <RedisDbJsonRepository>();

            var result = await testee.GetStorage(input);

            result.Should().BeNull();
        }
Пример #5
0
        public async Task GetStorage_ValueFound_ReturnsStorageValue()
        {
            var input = new StorageKey
            {
                ScriptHash = UInt160.Parse(RandomInt().ToString("X40")),
                Key        = new byte[1]
            };
            var expectedBytes      = new byte[1];
            var expectedResult     = new StorageValue();
            var rocksDbContextMock = AutoMockContainer.GetMock <IRocksDbContext>();

            rocksDbContextMock
            .Setup(m => m.Get(It.Is <byte[]>(b => b.SequenceEqual(input.BuildStateStorageKey()))))
            .ReturnsAsync(expectedBytes);
            _serializerMock.Setup(m => m.Deserialize <StorageValue>(expectedBytes, null)).Returns(expectedResult);
            var testee = AutoMockContainer.Create <RocksDbRepository>();

            var result = await testee.GetStorage(input);

            result.Should().Be(expectedResult);
        }
Пример #6
0
 public async Task DeleteStorage(StorageKey key)
 {
     await _redisDbContext.Delete(key.BuildStateStorageKey());
 }
Пример #7
0
 public async Task AddStorage(StorageKey key, StorageValue val)
 {
     await _redisDbContext.Set(key.BuildStateStorageKey(), val.Value);
 }
Пример #8
0
        public async Task <StorageValue> GetStorage(StorageKey key)
        {
            var raw = await _redisDbJsonContext.Get(key.BuildStateStorageKey());

            return(raw.IsNull ? null : _jsonConverter.DeserializeObject <StorageValue>(raw));
        }