fix: address methods that return void or task in those cases return null

This commit is contained in:
Stevan Freeborn
2024-07-01 23:14:08 -05:00
parent 1ae90106b5
commit c2788c3893
3 changed files with 39 additions and 2 deletions
@@ -221,6 +221,40 @@ public class ToolCallTests : SerializationTest
result.Value.Should().Be("John");
result.Error.Should().BeNull();
}
[Fact]
public async Task InvokeAsync_WhenCalledAndToolReturnsVoid_ItShouldReturnSuccessResult()
{
var func = (int i) => { };
var anthropicFunction = new AnthropicFunction(func.Method, func.Target);
var tool = new Tool("tool", "description", anthropicFunction);
var input = new Dictionary<string, object?> { { "i", 42 } };
var toolCall = new ToolCall(tool, new ToolUseContent { Input = input });
var result = await toolCall.InvokeAsync();
result.IsSuccess.Should().BeTrue();
result.Value.Should().BeNull();
result.Error.Should().BeNull();
}
[Fact]
public async Task InvokeAsync_WhenCalledAndToolReturnsTask_ItShouldReturnSuccessResult()
{
var func = async (int i) => await Task.CompletedTask;
var anthropicFunction = new AnthropicFunction(func.Method, func.Target);
var tool = new Tool("tool", "description", anthropicFunction);
var input = new Dictionary<string, object?> { { "i", 42 } };
var toolCall = new ToolCall(tool, new ToolUseContent { Input = input });
var result = await toolCall.InvokeAsync();
result.IsSuccess.Should().BeTrue();
result.Value.Should().BeNull();
result.Error.Should().BeNull();
}
}
class Person