public void ShouldSubstituteSpecialVariables() { var variables = new TelemetryValues(new[] { new TelemetryVariable { Min = 1, Name = "Counter", Step = 1, }, }); var telemetryTemplate = new TelemetryTemplate( $"$.Counter $.{Constants.TicksValueName} $.{Constants.GuidValueName}", variables.VariableNames()); var generatedPayload = telemetryTemplate.Create( variables.NextValues(previous: null)); var parts = generatedPayload.Split(); Assert.Equal(3, parts.Length); Assert.Equal("1", parts[0]); // Counter must be 1 Assert.True(parts[1].All(char.IsDigit)); // Ticks must be an int Assert.True(Guid.TryParse(parts[2], out _)); // Guid should be parseable }
public void ShouldSubstituteVariablesCorrectly( Dictionary <string, object> previousValues, Dictionary <string, object> vars, string template, string expectedPayload) { var variables = new TelemetryValues( vars.Select(var => new TelemetryVariable { Name = var.Key, Values = new[] { var.Value }, }).ToArray()); var telemetryTemplate = new TelemetryTemplate( template, variables.VariableNames()); var generatedPayload = telemetryTemplate.Create( variables.NextValues(previous: previousValues)); Assert.Equal(expectedPayload, generatedPayload); }