Files
Omika/tests/Omika.Tests/Architecture/BusinessMustNotReferenceObservabilityExportTests.cs
2026-10-23 18:46:50 +02:00

30 lines
1.2 KiB
C#

using System.Reflection;
using Omika.Core.Observability;
namespace Omika.Tests.Architecture;
/// <summary>
/// Règle d'architecture (Phase 1) : le métier ne doit référencer aucune pile
/// d'export d'observabilité (OpenTelemetry, SigNoz, ClickHouse, OTLP). Il ne
/// connaît que les abstractions <c>IOmikaTelemetry</c> / <c>IEventTracker</c> /
/// <c>IDiagnosticLogger</c>. OpenTelemetry n'étant pas installé, ce test prépare
/// la règle pour les phases suivantes.
/// </summary>
public class BusinessMustNotReferenceObservabilityExportTests
{
[Fact]
public void OmikaCore_DoesNotReference_OpenTelemetryOrSigNozOrClickHouseOrOtlp()
{
Assembly core = typeof(IOmikaTelemetry).Assembly;
string[] referenced = core.GetReferencedAssemblies()
.Select(a => a.Name ?? string.Empty)
.ToArray();
Assert.DoesNotContain(referenced, n => n.StartsWith("OpenTelemetry", StringComparison.Ordinal));
Assert.DoesNotContain(referenced, n => n.StartsWith("SigNoz", StringComparison.Ordinal));
Assert.DoesNotContain(referenced, n => n.StartsWith("ClickHouse", StringComparison.Ordinal));
Assert.DoesNotContain(referenced, n => n.Contains("OTLP", StringComparison.OrdinalIgnoreCase));
}
}