using Agentic.Engine; using MarketAlly.AIPlugin.Agentic; namespace MarketAlly.AIPlugin.Tests; /// /// Tests for AgenticEngine core functionality /// public class AgenticEngineTests { [Fact] public void Constructor_ShouldInitializeWithDefaultState() { // Arrange & Act var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Assert engine.Should().NotBeNull(); engine.IsRunning.Should().BeFalse(); engine.HasOrchestrator.Should().BeFalse(); engine.CanExecutePlans.Should().BeFalse(); engine.IsEnvironmentProbed.Should().BeFalse(); } [Fact] public void ExecutionModeStatus_WithoutOrchestrator_ShouldReturnSimulationMode() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act var status = engine.ExecutionModeStatus; // Assert status.Should().Contain("Simulation mode"); status.Should().Contain("configure API key"); } [Fact] public void AgentInventory_ShouldNotBeNull() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act var inventory = engine.AgentInventory; // Assert inventory.Should().NotBeNull(); } [Fact] public void Environment_BeforeProbe_ShouldBeNull() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act var environment = engine.Environment; // Assert environment.Should().BeNull(); } [Fact] public void OrgChart_WithoutConfiguration_ShouldBeNull() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act var orgChart = engine.OrgChart; // Assert orgChart.Should().BeNull(); } [Fact] public async Task DisposeAsync_ShouldNotThrow() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act Func act = async () => await engine.DisposeAsync(); // Assert await act.Should().NotThrowAsync(); } [Fact] public void ExecutionEventReceived_ShouldBeNullByDefault() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act & Assert // Events are null until subscribed - just verify no exception engine.Should().NotBeNull(); } [Fact] public void AgentEventReceived_ShouldBeNullByDefault() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act & Assert // Events are null until subscribed - just verify no exception engine.Should().NotBeNull(); } [Fact] public void SystemEventReceived_ShouldBeNullByDefault() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act & Assert // Events are null until subscribed - just verify no exception engine.Should().NotBeNull(); } [Fact] public void ClarificationRequested_ShouldBeNullByDefault() { // Arrange var builder = new AgenticEngineBuilder(); var engine = builder.Build(); // Act & Assert // Events are null until subscribed - just verify no exception engine.Should().NotBeNull(); } }