internal static void PopulateTraitProvider <T>(MARSTraitDataProvider <T> provider, Dictionary <int, T> data, string traitNamePrefix = "", int count = 1) { for (int i = 0; i < count; i++) { var traitName = string.IsNullOrEmpty(traitNamePrefix) ? TraitNameForIndex <T>(i) : count == 1 ? traitNamePrefix // inserts an exact trait name : string.Format("{0}{1}", traitNamePrefix, i); foreach (var kvp in data) { provider.AddOrUpdateTrait(kvp.Key, traitName, kvp.Value); } } }
public void AddGetRemove_TraitValue <T>(int id, string traitName, T traitValue) { var provider = new MARSTraitDataProvider <T>(dataId => { }, m_Db); provider.AddOrUpdateTrait(id, traitName, traitValue); T retrievedValue; provider.TryGetTraitValue(id, traitName, out retrievedValue); Assert.AreEqual(traitValue, retrievedValue); Assert.True(provider.RemoveTrait(id, traitName)); T postRemovalValue; Assert.False(provider.TryGetTraitValue(id, traitName, out postRemovalValue)); Assert.AreEqual(default(T), postRemovalValue); }