public async Task <StorageValue> GetStorage(StorageKey key) { var raw = await _rocksDbContext.Get(key.BuildStateStorageKey()); return(raw == null ? null : _binarySerializer.Deserialize <StorageValue>(raw)); }
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()))); }
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)); }
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(); }
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); }
public async Task DeleteStorage(StorageKey key) { await _redisDbContext.Delete(key.BuildStateStorageKey()); }
public async Task AddStorage(StorageKey key, StorageValue val) { await _redisDbContext.Set(key.BuildStateStorageKey(), val.Value); }
public async Task <StorageValue> GetStorage(StorageKey key) { var raw = await _redisDbJsonContext.Get(key.BuildStateStorageKey()); return(raw.IsNull ? null : _jsonConverter.DeserializeObject <StorageValue>(raw)); }