public async Task Load_WhenTogglesOrEtagFileDoesNotExists_ReturnsEmptyResult( bool toggleCollectionExists, bool etagExists, [Frozen] MemoryToggleCollectionCacheSettings settings, [Frozen] MemoryCache memoryCache, MemoryToggleCollectionCache cache ) { settings.EtagKeyName = "Etag"; settings.ToggleCollectionKeyName = "Toggles"; if (toggleCollectionExists) { var toggleCollection = new ToggleCollection(); memoryCache.Set(settings.ToggleCollectionKeyName, toggleCollection); } if (toggleCollectionExists && etagExists) { var etag = Guid.NewGuid().ToString(); memoryCache.Set(settings.EtagKeyName, etag); } var result = await cache.Load(CancellationToken.None); Assert.Equal(string.Empty, result.InitialETag); Assert.Null(result.InitialToggleCollection); }
public async Task Save_WhenEtagIsNull_ThrowsArgumentNullException( MemoryToggleCollectionCache cache, ToggleCollection toggleCollection ) { await Assert.ThrowsAsync <ArgumentNullException>(() => cache.Save(toggleCollection, null, CancellationToken.None)); }
public async Task Save_WhenToggleCollectionIsNull_ThrowsArgumentNullException( MemoryToggleCollectionCache cache, string etag ) { await Assert.ThrowsAsync <ArgumentNullException>(() => cache.Save(null, etag, CancellationToken.None)); }
public async Task Load_WhenCancellationTokenIsCanceled_ThrowsOperationCancelledException( MemoryToggleCollectionCache cache ) { var cts = new CancellationTokenSource(); cts.Cancel(); await Assert.ThrowsAsync <OperationCanceledException>(() => cache.Load(cts.Token)); }
public async Task Save_WhenCancellationTokenIsCanceled_ThrowsOperationCancelledException( MemoryToggleCollectionCache cache, ToggleCollection toggleCollection, string etag ) { var cts = new CancellationTokenSource(); cts.Cancel(); await Assert.ThrowsAsync <OperationCanceledException>(() => cache.Save(toggleCollection, etag, cts.Token)); }
public async Task Load_WhenValidToggleAndEtagFilesExist_ReturnsExpectedResult( [Frozen] MemoryToggleCollectionCacheSettings settings, [Frozen] MemoryCache memoryCache, ToggleCollection toggleCollection, string etag ) { settings.EtagKeyName = "Etag"; settings.ToggleCollectionKeyName = "Toggles"; memoryCache.Set(settings.ToggleCollectionKeyName, toggleCollection); memoryCache.Set(settings.EtagKeyName, etag); var cache = new MemoryToggleCollectionCache(settings, memoryCache); var result = await cache.Load(CancellationToken.None); Assert.Equal(etag, result.InitialETag); Assert.Same(toggleCollection, result.InitialToggleCollection); }