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); }