40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
using Opc.Ua;
|
|
using Shouldly;
|
|
using Xunit;
|
|
using ZB.MOM.WW.OtOpcUa.Client.Shared.Adapters;
|
|
using ZB.MOM.WW.OtOpcUa.Client.Shared.Models;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Tests.Adapters;
|
|
|
|
/// <summary>Uses the real configuration factory so fake sessions cannot conceal SDK initialization failures.</summary>
|
|
public sealed class DefaultApplicationConfigurationFactoryTests
|
|
{
|
|
[Theory]
|
|
[InlineData(SecurityMode.None)]
|
|
[InlineData(SecurityMode.SignAndEncrypt)]
|
|
public async Task Real_configuration_initializes_its_certificate_manager(SecurityMode mode)
|
|
{
|
|
var root = Path.Combine(Path.GetTempPath(), $"otopcua-real-config-{Guid.NewGuid():N}");
|
|
ApplicationConfiguration? config = null;
|
|
try
|
|
{
|
|
config = await new DefaultApplicationConfigurationFactory().CreateAsync(new ConnectionSettings
|
|
{
|
|
EndpointUrl = "opc.tcp://localhost:4840",
|
|
CertificateStorePath = root,
|
|
SecurityMode = mode,
|
|
AutoAcceptCertificates = false,
|
|
}, TestContext.Current.CancellationToken);
|
|
config.CertificateManager.ShouldNotBeNull();
|
|
config.SecurityConfiguration.AutoAcceptUntrustedCertificates.ShouldBeFalse();
|
|
if (mode != SecurityMode.None)
|
|
Directory.EnumerateFiles(Path.Combine(root, "own"), "*", SearchOption.AllDirectories).ShouldNotBeEmpty();
|
|
}
|
|
finally
|
|
{
|
|
(config?.CertificateManager as IDisposable)?.Dispose();
|
|
if (Directory.Exists(root)) Directory.Delete(root, recursive: true);
|
|
}
|
|
}
|
|
}
|