public IDictionary <string, FeatureFlag> FlagsForUser(User user) { readWriteLock.EnterReadLock(); try { return(inMemoryCache.RetrieveFlags(user)); } finally { readWriteLock.ExitReadLock(); } }
public void CacheFlagsShouldAlsoStoreFlagsInMemoryCache() { var flagCacheManager = ManagerWithCachedFlags(); var cachedDeviceFlags = inMemoryCache.RetrieveFlags(user); Assert.Equal(15, cachedDeviceFlags["int-flag"].value.ToObject <int>()); Assert.Equal("*****@*****.**", cachedDeviceFlags["string-flag"].value.ToString()); Assert.Equal(13.14159, cachedDeviceFlags["float-flag"].value.ToObject <double>()); }
public void CacheFlagsShouldAlsoStoreFlagsInMemoryCache() { var flagCacheManager = ManagerWithCachedFlags(); var cachedDeviceFlags = inMemoryCache.RetrieveFlags(user); Assert.Equal(15, cachedDeviceFlags["int-flag"].value.AsInt); Assert.Equal("*****@*****.**", cachedDeviceFlags["string-flag"].value.AsString); Assert.Equal(13.5, cachedDeviceFlags["float-flag"].value.AsFloat); }
public void CanCacheFlagsInMemory() { var jsonFlags = @"{""flag1"":{""value"":1},""flag2"":{""value"":2}}"; var flags = TestUtil.DecodeFlagsJson(jsonFlags); inMemoryCache.CacheFlagsForUser(flags, user1); var flagsRetrieved = inMemoryCache.RetrieveFlags(user1); Assert.Equal(2, flagsRetrieved.Count); Assert.Equal(flags["flag1"], flagsRetrieved["flag1"]); Assert.Equal(flags["flag2"], flagsRetrieved["flag2"]); }
public FlagCacheManager(IUserFlagCache inMemoryCache, IUserFlagCache deviceCache, IFlagListenerUpdater flagListenerUpdater, User user) { this.inMemoryCache = inMemoryCache; this.deviceCache = deviceCache; this.flagListenerUpdater = flagListenerUpdater; var flagsFromDevice = deviceCache.RetrieveFlags(user); inMemoryCache.CacheFlagsForUser(flagsFromDevice, user); }
public void CanCacheFlagsInMemory() { var text = JSONReader.FeatureFlagJSON(); var flags = JsonConvert.DeserializeObject <IDictionary <string, FeatureFlag> >(text); inMemoryCache.CacheFlagsForUser(flags, user1); var flagsRetrieved = inMemoryCache.RetrieveFlags(user1); Assert.Equal(flags.Count, flagsRetrieved.Count); var secondFlag = flags.Values.ToList()[1]; var secondFlagRetrieved = flagsRetrieved.Values.ToList()[1]; Assert.Equal(secondFlag, secondFlagRetrieved); }
public FlagCacheManager(IUserFlagCache inMemoryCache, IUserFlagCache deviceCache, IFlagChangedEventManager flagChangedEventManager, User user) { this.inMemoryCache = inMemoryCache; this.deviceCache = deviceCache; this.flagChangedEventManager = flagChangedEventManager; var flagsFromDevice = deviceCache.RetrieveFlags(user); if (flagsFromDevice != null) { inMemoryCache.CacheFlagsForUser(flagsFromDevice, user); } }
public IImmutableDictionary <string, FeatureFlag> FlagsForUser(User user) { return(_flagCache.RetrieveFlags(user)); }