85 lines
2.2 KiB
C#
Executable File
85 lines
2.2 KiB
C#
Executable File
using MarketAlly.AIPlugin;
|
|
|
|
namespace MarketAlly.AIPlugin.Tests;
|
|
|
|
/// <summary>
|
|
/// Tests for AIPluginResult class
|
|
/// </summary>
|
|
public class AIPluginResultTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_WithData_ShouldCreateSuccessResult()
|
|
{
|
|
// Arrange
|
|
var data = new { Value = "test" };
|
|
var message = "Success message";
|
|
|
|
// Act
|
|
var result = new AIPluginResult(data, message);
|
|
|
|
// Assert
|
|
result.Success.Should().BeTrue();
|
|
result.Data.Should().Be(data);
|
|
result.Message.Should().Be(message);
|
|
result.Error.Should().BeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithDataOnly_ShouldCreateSuccessResultWithNullMessage()
|
|
{
|
|
// Arrange
|
|
var data = new { Value = "test" };
|
|
|
|
// Act
|
|
var result = new AIPluginResult(data);
|
|
|
|
// Assert
|
|
result.Success.Should().BeTrue();
|
|
result.Data.Should().Be(data);
|
|
result.Message.Should().BeNull();
|
|
result.Error.Should().BeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithError_ShouldCreateFailureResult()
|
|
{
|
|
// Arrange
|
|
var exception = new InvalidOperationException("Test error");
|
|
var message = "Operation failed";
|
|
|
|
// Act
|
|
var result = new AIPluginResult(exception, message);
|
|
|
|
// Assert
|
|
result.Success.Should().BeFalse();
|
|
result.Error.Should().Be(exception);
|
|
result.Message.Should().Be(message);
|
|
result.Data.Should().BeNull();
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithNullData_ShouldStillCreateSuccessResult()
|
|
{
|
|
// Arrange & Act
|
|
var result = new AIPluginResult(null, "Success with null data");
|
|
|
|
// Assert
|
|
result.Success.Should().BeTrue();
|
|
result.Data.Should().BeNull();
|
|
result.Message.Should().Be("Success with null data");
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("")]
|
|
[InlineData(null)]
|
|
public void Constructor_WithEmptyOrNullMessage_ShouldStillWork(string message)
|
|
{
|
|
// Arrange & Act
|
|
var result = new AIPluginResult(new { }, message);
|
|
|
|
// Assert
|
|
result.Success.Should().BeTrue();
|
|
result.Message.Should().Be(message);
|
|
}
|
|
}
|