Replace direct SQL queries against Historian Runtime database with the Wonderware Historian managed SDK (ArchestrA.HistorianAccess). Add HistoryServerCapabilities node, AggregateFunctions folder, continuation points, ReadAtTime interpolation, ReturnBounds, ReadModified rejection, HistoricalDataConfiguration per node, historical event access, and client-side StandardDeviation aggregate support. Remove screenshot tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using Shouldly;
|
|
using Xunit;
|
|
using ZB.MOM.WW.LmxOpcUa.Host.Configuration;
|
|
|
|
namespace ZB.MOM.WW.LmxOpcUa.Tests.Configuration
|
|
{
|
|
public class HistorianConfigurationTests
|
|
{
|
|
[Fact]
|
|
public void DefaultConfig_Disabled()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.Enabled.ShouldBe(false);
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_ServerNameLocalhost()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.ServerName.ShouldBe("localhost");
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_IntegratedSecurityTrue()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.IntegratedSecurity.ShouldBe(true);
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_UserNameNull()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.UserName.ShouldBeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_PasswordNull()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.Password.ShouldBeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_Port32568()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.Port.ShouldBe(32568);
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_CommandTimeout30()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.CommandTimeoutSeconds.ShouldBe(30);
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConfig_MaxValuesPerRead10000()
|
|
{
|
|
var config = new HistorianConfiguration();
|
|
config.MaxValuesPerRead.ShouldBe(10000);
|
|
}
|
|
}
|
|
}
|