96 lines
3.9 KiB
C#
Executable File
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"]);
|
|
}
|
|
}
|
|
} |