Files
scadalink-design/tests/ScadaLink.CLI.Tests/CliConfigTests.cs
Joseph Doherty 1a540f4f0a feat: add HTTP Management API, migrate CLI from Akka ClusterClient to HTTP
Replace the CLI's Akka.NET ClusterClient transport with a simple HTTP client
targeting a new POST /management endpoint on the Central Host. The endpoint
handles Basic Auth, LDAP authentication, role resolution, and ManagementActor
dispatch in a single round-trip — eliminating the CLI's Akka, LDAP, and
Security dependencies.

Also fixes DCL ReSubscribeAll losing subscriptions on repeated reconnect by
deriving the tag list from _subscriptionsByInstance instead of _subscriptionIds.
2026-03-20 23:55:31 -04:00

66 lines
1.8 KiB
C#

using ScadaLink.CLI;
namespace ScadaLink.CLI.Tests;
public class CliConfigTests
{
[Fact]
public void Load_DefaultFormat_IsJson()
{
var origUrl = Environment.GetEnvironmentVariable("SCADALINK_MANAGEMENT_URL");
var origFormat = Environment.GetEnvironmentVariable("SCADALINK_FORMAT");
try
{
Environment.SetEnvironmentVariable("SCADALINK_MANAGEMENT_URL", null);
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", null);
var config = CliConfig.Load();
// DefaultFormat is always "json" unless overridden by config file or env var
Assert.Equal("json", config.DefaultFormat);
}
finally
{
Environment.SetEnvironmentVariable("SCADALINK_MANAGEMENT_URL", origUrl);
Environment.SetEnvironmentVariable("SCADALINK_FORMAT", origFormat);
}
}
[Fact]
public void Load_ManagementUrl_FromEnvironment()
{
var orig = Environment.GetEnvironmentVariable("SCADALINK_MANAGEMENT_URL");
try
{
Environment.SetEnvironmentVariable("SCADALINK_MANAGEMENT_URL", "http://central:5000");
var config = CliConfig.Load();
Assert.Equal("http://central:5000", config.ManagementUrl);
}
finally
{
Environment.SetEnvironmentVariable("SCADALINK_MANAGEMENT_URL", 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);
}
}
}