MarketAlly.AIPlugin.Extensions/MarketAlly.AIPlugin.Analysis/Tests/Infrastructure/AnalysisConfigurationTests.cs

96 lines
3.9 KiB
C#
Executable File

using MarketAlly.AIPlugin.Analysis.Infrastructure;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace MarketAlly.AIPlugin.Analysis.Tests.Infrastructure
{
[TestClass]
public class AnalysisConfigurationTests
{
[TestMethod]
public void Constructor_ShouldInitializeWithDefaultValues()
{
// Arrange & Act
var config = new AnalysisConfiguration();
// Assert
Assert.IsNotNull(config.DefaultParameters);
Assert.AreEqual(TimeSpan.FromMinutes(10), config.DefaultTimeout);
Assert.AreEqual(Environment.ProcessorCount, config.MaxConcurrentAnalyses);
Assert.IsTrue(config.EnableCaching);
Assert.AreEqual(TimeSpan.FromMinutes(30), config.CacheExpiration);
Assert.AreEqual(TimeSpan.FromMinutes(30), config.CacheExpirationTime);
Assert.AreEqual(512, config.MaxCacheMemoryMB);
Assert.IsTrue(config.EnableParallelProcessing);
Assert.IsFalse(config.EnableDetailedLogging);
Assert.IsTrue(config.ValidateParameters);
Assert.IsTrue(config.EnableSecurityValidation);
Assert.IsFalse(config.AllowDynamicPluginLoading);
Assert.AreEqual(string.Empty, config.TrustedPluginDirectory);
}
[TestMethod]
public void Properties_ShouldAllowCustomValues()
{
// Arrange
var config = new AnalysisConfiguration();
var customTimeout = TimeSpan.FromMinutes(5);
var customCacheExpiration = TimeSpan.FromHours(1);
// Act
config.DefaultTimeout = customTimeout;
config.MaxConcurrentAnalyses = 8;
config.EnableCaching = false;
config.CacheExpiration = customCacheExpiration;
config.CacheExpirationTime = customCacheExpiration;
config.MaxCacheMemoryMB = 1024;
config.EnableParallelProcessing = false;
config.EnableDetailedLogging = true;
config.ValidateParameters = false;
config.EnableSecurityValidation = false;
config.AllowDynamicPluginLoading = true;
config.TrustedPluginDirectory = "/trusted/plugins";
// Assert
Assert.AreEqual(customTimeout, config.DefaultTimeout);
Assert.AreEqual(8, config.MaxConcurrentAnalyses);
Assert.IsFalse(config.EnableCaching);
Assert.AreEqual(customCacheExpiration, config.CacheExpiration);
Assert.AreEqual(customCacheExpiration, config.CacheExpirationTime);
Assert.AreEqual(1024, config.MaxCacheMemoryMB);
Assert.IsFalse(config.EnableParallelProcessing);
Assert.IsTrue(config.EnableDetailedLogging);
Assert.IsFalse(config.ValidateParameters);
Assert.IsFalse(config.EnableSecurityValidation);
Assert.IsTrue(config.AllowDynamicPluginLoading);
Assert.AreEqual("/trusted/plugins", config.TrustedPluginDirectory);
}
[TestMethod]
public void DefaultParameters_ShouldBeEmptyDictionary()
{
// Arrange & Act
var config = new AnalysisConfiguration();
// Assert
Assert.IsNotNull(config.DefaultParameters);
Assert.AreEqual(0, config.DefaultParameters.Count);
}
[TestMethod]
public void DefaultParameters_ShouldAllowAddingValues()
{
// Arrange
var config = new AnalysisConfiguration();
// Act
config.DefaultParameters["testParam"] = "testValue";
config.DefaultParameters["intParam"] = 42;
// Assert
Assert.AreEqual(2, config.DefaultParameters.Count);
Assert.AreEqual("testValue", config.DefaultParameters["testParam"]);
Assert.AreEqual(42, config.DefaultParameters["intParam"]);
}
}
}