Esempio n. 1
0
        public void Deserialize_AggregationSupplied_UsesDeserializer()
        {
            // Arrange
            const string yamlText =
                @"aggregation:
    type: Average";
            var node            = YamlUtils.CreateYamlNode(yamlText);
            var aggregationNode = (YamlMappingNode)node.Children["aggregation"];

            var aggregation = new MetricAggregationV1();

            _aggregationDeserializer.Setup(d => d.Deserialize(aggregationNode)).Returns(aggregation);

            // Act
            var config = _deserializer.Deserialize(node);

            // Assert
            Assert.Same(aggregation, config.Aggregation);
        }
        internal override AzureMetricConfigurationV1 Deserialize(YamlMappingNode node)
        {
            Guard.NotNull(node, nameof(node));

            var metricName = node.Children[_metricNode];

            MetricAggregationV1 metricAggregation = null;

            if (node.Children.ContainsKey(_aggregationNode))
            {
                var aggregationNode = (YamlMappingNode)node.Children[_aggregationNode];
                metricAggregation = _metricAggregationDeserializer.Deserialize(aggregationNode);
            }

            var azureMetricConfiguration = new AzureMetricConfigurationV1
            {
                MetricName  = metricName?.ToString(),
                Aggregation = metricAggregation
            };

            return(azureMetricConfiguration);
        }