/// <summary> /// Retrieve a value from the store. If the value is not present and there is a default value provider, then the /// default value from there will be returned, else if there is no provider then null will be returned. /// </summary> /// <param name="saveKey">The key to retrieve the value for.</param> /// <returns>The stored value.</returns> public object GetValue(string saveKey) { object saveValue; savedData.TryGetValue(saveKey, out saveValue); if (saveValue == null && defaultValueProvider != null) { return(defaultValueProvider.GetDefaultValue(saveKey)); } return(saveValue); }
public void GivenDefaultProviderWithKeyAndValueAbsent_WhenGetValue_ThenDefaultReturned() { DefaultValueProvider provider = Substitute.For <DefaultValueProvider>(); store = new SerialSaveStore(persister, provider); string key0 = "key0"; persister.ReadData().Returns(new Dictionary <string, object>()); store.Load(); string expectedDefault = "someMagicDefault"; provider.GetDefaultValue(key0).Returns(expectedDefault); object actual = store.GetValue(key0); Assert.That(actual, Is.EqualTo(expectedDefault)); }
public void GivenDefaultProviderWithTypedSaveKeyAndValueAbsent_WhenGetValueTyped_ThenDefaultReturned() { DefaultValueProvider provider = Substitute.For <DefaultValueProvider>(); store = new SerialSaveStore(persister, provider); SaveKey <int> key0 = new SaveKey <int>("key0"); persister.ReadData().Returns(new Dictionary <string, object>()); store.Load(); int expectedDefault = 5005; provider.GetDefaultValue(key0.Name).Returns(expectedDefault); int actual = store.GetValue <int>(key0); Assert.That(actual, Is.EqualTo(expectedDefault)); }