using System.IO; using Amazon.AwsToolkit.Telemetry.Events.Generator.Models; using Xunit; namespace Amazon.AwsToolkit.Telemetry.Events.Generator.Tests { public class DefinitionsBuilderTests { private readonly DefinitionsBuilder _sut = new DefinitionsBuilder().WithNamespace("Test"); private readonly TelemetryDefinitions _definitions = TelemetryDefinitions.Load("test-data/sampleDefinitions.json"); /// /// Treat the sample definitions as if they were the central telemetry definitions /// [Fact] public void Build_CommonDefinition() { _sut .AddMetrics(_definitions.metrics) .AddMetricsTypes(_definitions.types); AssertGeneratedCode("test-data/expectedCode.txt"); } /// /// Treat the sample definitions as if they were the repo-specific "supplemental" telemetry definitions /// [Fact] public void Build_ReferenceDefinition() { _sut .AddMetrics(_definitions.metrics) .AddMetricsTypes(_definitions.types, referenceOnly: true); AssertGeneratedCode("test-data/expectedCode-supplemental.txt"); } private void AssertGeneratedCode(string expectedCodePath) { var expectedCode = File.ReadAllText(expectedCodePath); Assert.Equal(NormalizeLineEndings(expectedCode), NormalizeLineEndings(_sut.Build())); } private string NormalizeLineEndings(string text) { return text.Replace("\r\n", "\n"); } } }