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();
}
}