public async Task BasicMapperTest <TK, TK1, TV, TV1>( IKeyValueStore <TK, TV> underlyingStore, ITypeMapper <TK1, TK> keyMapper, ITypeMapper <TV1, TV> valueMapper, IDictionary <TK1, TV1> items) { // Arrange var keyValueMapper = new KeyValueStoreMapper <TK1, TK, TV1, TV>(underlyingStore, keyMapper, valueMapper); // Act KeyValuePair <TK1, TV1> item = items.First(); await keyValueMapper.Put(item.Key, item.Value); // Assert Option <TV1> value = await keyValueMapper.Get(item.Key); Assert.True(value.HasValue); Option <TV> underlyingValue = await underlyingStore.Get(keyMapper.From(item.Key)); Assert.True(underlyingValue.HasValue); Assert.Equal(underlyingValue.OrDefault(), valueMapper.From(value.OrDefault())); }