public Task GetLoadMetricsSingleItem() { return(this.RunDataSizeUnitsPermutationAsync(async config => { Uri collectionName = new Uri("test://dictionary"); int key = 1; string value = "Homer"; BinaryValueConverter converter = new BinaryValueConverter(collectionName, new JsonReliableStateSerializerResolver()); double size = converter.Serialize <int>(key).Buffer.Length + converter.Serialize <string>(value).Buffer.Length; double expectedMemory = size / (double)config.MemoryMetricUnits; double expectedDisk = size / (double)config.DiskMetricUnits; MockReliableDictionary <BinaryValue, BinaryValue> store = new MockReliableDictionary <BinaryValue, BinaryValue>(collectionName); MetricReliableDictionary <int, string> target = new MetricReliableDictionary <int, string>(store, converter, config); using (ITransaction tx = new MockTransaction()) { await target.SetAsync(tx, key, value); await tx.CommitAsync(); } using (ITransaction tx = new MockTransaction()) { IEnumerable <DecimalLoadMetric> result = await target.GetLoadMetricsAsync(tx, CancellationToken.None); Assert.AreEqual <int>(1, result.Count(x => x.Name == config.MemoryMetricName && x.Value == expectedMemory)); Assert.AreEqual <int>(1, result.Count(x => x.Name == config.DiskMetricName && x.Value == expectedDisk)); } })); }
public async Task EnumerateSingleItem() { Uri name = new Uri("test://dictionary"); MetricReliableStateManager target = new MetricReliableStateManager( this.GetContext(), new JsonReliableStateSerializerResolver(), this.GetConfig(), new MockReliableStateManager()); await target.GetOrAddAsync <IReliableDictionary <int, string> >(name); IAsyncEnumerator <IReliableState> enumerator = target.GetAsyncEnumerator(); bool next = await enumerator.MoveNextAsync(CancellationToken.None); MetricReliableDictionary <int, string> actual = enumerator.Current as MetricReliableDictionary <int, string>; Assert.IsNotNull(actual); Assert.AreEqual <Uri>(name, actual.Name); Assert.IsFalse(await enumerator.MoveNextAsync(CancellationToken.None)); }
public Task GetLoadMetricsEmptyDictionary() { return(RunDataSizeUnitsPermutationAsync(async config => { int expected = 0; Uri collectionName = new Uri("test://dictionary"); MockReliableDictionary <BinaryValue, BinaryValue> store = new MockReliableDictionary <BinaryValue, BinaryValue>(collectionName); BinaryValueConverter converter = new BinaryValueConverter(collectionName, new JsonReliableStateSerializerResolver()); MetricReliableDictionary <int, string> target = new MetricReliableDictionary <int, string>(store, converter, config); using (ITransaction tx = new MockTransaction()) { IEnumerable <DecimalLoadMetric> result = await target.GetLoadMetricsAsync(tx, CancellationToken.None); Assert.AreEqual <int>(1, result.Count(x => x.Name == config.MemoryMetricName && x.Value == expected)); Assert.AreEqual <int>(1, result.Count(x => x.Name == config.DiskMetricName && x.Value == expected)); } })); }