30 lines
1.2 KiB
C#
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));
|
|
}
|
|
}
|