Files
scadaproj/ZB.MOM.WW.Telemetry/tests/ZB.MOM.WW.Telemetry.Tests/ZbResourceTests.cs
T
2026-06-01 07:30:54 -04:00

51 lines
1.6 KiB
C#

using OpenTelemetry.Resources;
using ZB.MOM.WW.Telemetry;
namespace ZB.MOM.WW.Telemetry.Tests;
public sealed class ZbResourceTests
{
[Fact]
public void Build_PopulatesAllResourceAttributes()
{
var options = new ZbTelemetryOptions
{
ServiceName = "otopcua",
ServiceNamespace = "ZB.MOM.WW",
ServiceVersion = "1.2.3",
SiteId = "site-7",
NodeRole = "central",
};
var resource = ZbResource.Build(options).Build();
var attributes = resource.Attributes.ToDictionary(a => a.Key, a => a.Value);
Assert.Equal("otopcua", attributes["service.name"]);
Assert.Equal("ZB.MOM.WW", attributes["service.namespace"]);
Assert.Equal("1.2.3", attributes["service.version"]);
Assert.Equal("site-7", attributes["site.id"]);
Assert.Equal("central", attributes["node.role"]);
Assert.Equal(Environment.MachineName, attributes["host.name"]);
}
[Fact]
public void Build_OmitsOptionalAttributes_WhenNull()
{
var options = new ZbTelemetryOptions
{
ServiceName = "mxgateway",
// ServiceVersion / SiteId / NodeRole left null
};
var resource = ZbResource.Build(options).Build();
var keys = resource.Attributes.Select(a => a.Key).ToHashSet();
Assert.Contains("service.name", keys);
Assert.Contains("service.namespace", keys);
Assert.Contains("host.name", keys);
Assert.DoesNotContain("service.version", keys);
Assert.DoesNotContain("site.id", keys);
Assert.DoesNotContain("node.role", keys);
}
}