Files
Omika/tests/Omika.Diagnostics.Tests/DiagnosticUsageTransportTests.cs
T
2026-10-23 18:46:50 +02:00

84 lines
2.6 KiB
C#

using Omika.Core.Observability;
using Omika.Core.Observability.External;
using Omika.Core.Observability.Outbox;
using Omika.Diagnostics.Import;
using Omika.Diagnostics.Models;
namespace Omika.Diagnostics.Tests;
/// <summary>
/// T18 (§14/§84) : ScreenCode/FeatureCode traversent le transport (OmikaEvent → DTO →
/// JSONL/Record) ; les données anciennes (NULL) restent compatibles partout.
/// </summary>
public class DiagnosticUsageTransportTests
{
[Fact]
public void Mapper_ToDto_CarriesScreenAndFeatureCode()
{
var @event = new TelemetryEvent
{
EventCode = TelemetryEventCodes.MobileScreenView,
ScreenCode = DiagnosticScreenCodes.Agenda,
FeatureCode = DiagnosticFeatureCodes.EmailSend
};
DiagnosticEventDto? dto = DiagnosticEventMapper.ToDto(@event, maxStringLength: 256);
Assert.NotNull(dto);
Assert.Equal(DiagnosticScreenCodes.Agenda, dto!.ScreenCode);
Assert.Equal(DiagnosticFeatureCodes.EmailSend, dto.FeatureCode);
}
[Fact]
public void Mapper_ToDto_NullUsage_StaysNull()
{
var @event = new TelemetryEvent { EventCode = TelemetryEventCodes.MobileAppStarted };
DiagnosticEventDto? dto = DiagnosticEventMapper.ToDto(@event, maxStringLength: 256);
Assert.NotNull(dto);
Assert.Null(dto!.ScreenCode);
Assert.Null(dto.FeatureCode);
}
[Fact]
public void RecordMapper_CarriesScreenAndFeatureCode()
{
var record = new RemoteDiagnosticRecord
{
Event = new DiagnosticEventDto
{
EventId = Guid.NewGuid(),
EventCode = TelemetryEventCodes.MobileScreenView.Value!,
ScreenCode = DiagnosticScreenCodes.SiteDetail,
FeatureCode = DiagnosticFeatureCodes.ReportGenerate
}
};
DiagnosticEventRecord? mapped = DiagnosticEventRecordMapper.ToRecord(record, "mobile");
Assert.NotNull(mapped);
Assert.Equal(DiagnosticScreenCodes.SiteDetail, mapped!.ScreenCode);
Assert.Equal(DiagnosticFeatureCodes.ReportGenerate, mapped.FeatureCode);
}
[Fact]
public void RecordMapper_OldDataNullUsage_StaysNull()
{
var record = new RemoteDiagnosticRecord
{
Event = new DiagnosticEventDto
{
EventId = Guid.NewGuid(),
EventCode = "OMK-MOB-APP-001"
}
};
DiagnosticEventRecord? mapped = DiagnosticEventRecordMapper.ToRecord(record, "mobile");
Assert.NotNull(mapped);
Assert.Null(mapped!.ScreenCode);
Assert.Null(mapped.FeatureCode);
}
}