Пример #1
0
        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);
        }
Пример #4
0
        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));
                }
            }));
        }