using Core.Telemetry; using Microsoft.ApplicationInsights.DataContracts; namespace Tests.TelemetryLogging { [TestClass] public class SeqLoggerTests : TestFixture { private SeqLogger _logger; private SeqHttpClient _httpClient; private readonly string _testId; public SeqLoggerTests() { _testId = Guid.NewGuid().ToString(); var config = new SeqConfiguration("http://localhost:5341", null, "MSTEST"); _httpClient = new SeqHttpClient(config); _logger = new SeqLogger(_httpClient, Environment.MachineName, config); } [TestMethod] public async Task LogTraceTelemetry_SendsCorrectData() { // Arrange var traceTelemetry = new TraceTelemetry { Message = "Test trace message", SeverityLevel = SeverityLevel.Error, Timestamp = DateTimeOffset.UtcNow }; traceTelemetry.Properties.Add("TestId", _testId); // Act await _logger.LogTraceTelemetryAsync(traceTelemetry); // Du kan nu tjekke Seq med følgende query: // TestId = 'guid-værdi-her' } [TestMethod] public async Task LogEventTelemetry_SendsCorrectData() { // Arrange var eventTelemetry = new EventTelemetry { Name = "Test Event", Timestamp = DateTimeOffset.UtcNow }; eventTelemetry.Properties.Add("TestId", _testId); eventTelemetry.Metrics.Add("TestMetric", 42.0); // Act await _logger.LogEventTelemetryAsync(eventTelemetry); } [TestMethod] public async Task LogExceptionTelemetry_SendsCorrectData() { // Arrange var exception = new Exception("Test exception"); var exceptionTelemetry = new ExceptionTelemetry(exception) { Timestamp = DateTimeOffset.UtcNow }; exceptionTelemetry.Properties.Add("TestId", _testId); // Act await _logger.LogExceptionTelemetryAsync(exceptionTelemetry); } [TestMethod] public async Task LogDependencyTelemetry_SendsCorrectData() { // Arrange var dependencyTelemetry = new DependencyTelemetry { Name = "SQL Query", Type = "SQL", Target = "TestDB", Success = true, Duration = TimeSpan.FromMilliseconds(100), Timestamp = DateTimeOffset.UtcNow }; dependencyTelemetry.Properties.Add("TestId", _testId); // Act await _logger.LogDependencyTelemetryAsync(dependencyTelemetry); } [TestMethod] public async Task LogRequestTelemetry_SendsCorrectData() { // Arrange var requestTelemetry = new RequestTelemetry { Name = "GET /api/test", Success = true, ResponseCode = "200", Duration = TimeSpan.FromMilliseconds(50), Url = new Uri("http://test.com/api/test"), Timestamp = DateTimeOffset.UtcNow }; requestTelemetry.Properties.Add("TestId", _testId); // Act await _logger.LogRequestTelemetryAsync(requestTelemetry); } } }