feat: add JoeAppEngine OPC UA nodes, fix DCL auto-reconnect and quality push
- Add JoeAppEngine folder to OPC UA nodes.json (BTCS, AlarmCntsBySeverity, Scheduler/ScanTime) - Fix DataConnectionActor: capture Self in PreStart for use from non-actor threads, preventing Self.Tell failure in Disconnected event handler - Implement InstanceActor.HandleConnectionQualityChanged to mark attributes Bad on disconnect - Fix LmxFakeProxy TagMapper to serialize arrays as JSON instead of "System.Int32[]" - Allow DataType and DataSourceReference updates in TemplateService.UpdateAttributeAsync - Update test_infra_opcua.md with JoeAppEngine documentation
This commit is contained in:
90
tests/ScadaLink.CLI.Tests/CliConfigTests.cs
Normal file
90
tests/ScadaLink.CLI.Tests/CliConfigTests.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using ScadaLink.CLI;
|
||||
|
||||
namespace ScadaLink.CLI.Tests;
|
||||
|
||||
public class CliConfigTests
|
||||
{
|
||||
[Fact]
|
||||
public void Load_DefaultValues_WhenNoConfigExists()
|
||||
{
|
||||
// Clear environment variables that might affect the test
|
||||
var origContact = Environment.GetEnvironmentVariable("SCADALINK_CONTACT_POINTS");
|
||||
var origLdap = Environment.GetEnvironmentVariable("SCADALINK_LDAP_SERVER");
|
||||
var origFormat = Environment.GetEnvironmentVariable("SCADALINK_FORMAT");
|
||||
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", null);
|
||||
Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", null);
|
||||
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", null);
|
||||
|
||||
var config = CliConfig.Load();
|
||||
|
||||
Assert.Equal(636, config.LdapPort);
|
||||
Assert.True(config.LdapUseTls);
|
||||
Assert.Equal("json", config.DefaultFormat);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", origContact);
|
||||
Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", origLdap);
|
||||
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", origFormat);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Load_ContactPoints_FromEnvironment()
|
||||
{
|
||||
var orig = Environment.GetEnvironmentVariable("SCADALINK_CONTACT_POINTS");
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", "host1:8080,host2:8080");
|
||||
|
||||
var config = CliConfig.Load();
|
||||
|
||||
Assert.Equal(2, config.ContactPoints.Count);
|
||||
Assert.Equal("host1:8080", config.ContactPoints[0]);
|
||||
Assert.Equal("host2:8080", config.ContactPoints[1]);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_CONTACT_POINTS", orig);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Load_LdapServer_FromEnvironment()
|
||||
{
|
||||
var orig = Environment.GetEnvironmentVariable("SCADALINK_LDAP_SERVER");
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", "ldap.example.com");
|
||||
|
||||
var config = CliConfig.Load();
|
||||
|
||||
Assert.Equal("ldap.example.com", config.LdapServer);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_LDAP_SERVER", orig);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Load_Format_FromEnvironment()
|
||||
{
|
||||
var orig = Environment.GetEnvironmentVariable("SCADALINK_FORMAT");
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", "table");
|
||||
|
||||
var config = CliConfig.Load();
|
||||
|
||||
Assert.Equal("table", config.DefaultFormat);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", orig);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user