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 void SerializeDeserializeString() { string expected = "Mr. Burns"; BinaryValueConverter target = new BinaryValueConverter(new Uri("store://a"), new JsonReliableStateSerializerResolver()); BinaryValue result = target.Serialize <string>(expected); string actual = target.Deserialize <string>(result); Assert.AreEqual <string>(expected, actual); }
public void SerializeDeserializeEmptyArray() { int[] expected = new int[0]; BinaryValueConverter target = new BinaryValueConverter(new Uri("store://a"), new JsonReliableStateSerializerResolver()); BinaryValue result = target.Serialize <int[]>(expected); int[] actual = target.Deserialize <int[]>(result); Assert.AreEqual(0, actual.Length); }
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)); } })); }