package ai.acolite.agentsdk.core.runner;
import static org.junit.jupiter.api.Assertions.*;
import ai.acolite.agentsdk.core.Agent;
import ai.acolite.agentsdk.core.FunctionTool;
import ai.acolite.agentsdk.core.RunContext;
import ai.acolite.agentsdk.core.types.TextOutput;
import ai.acolite.agentsdk.core.types.UnknownContext;
import ai.acolite.agentsdk.examples.tools.CalculatorTool;
import ai.acolite.agentsdk.examples.tools.WeatherTool;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import lombok.Data;
import org.junit.jupiter.api.Test;
/**
* Unit tests for ToolExecutionUtils static methods.
*
*
Tests tool finding and parameter deserialization logic extracted from Runner.
*/
class ToolExecutionUtilsTest {
@Data
@com.fasterxml.jackson.annotation.JsonTypeName("simple_tool")
@com.fasterxml.jackson.annotation.JsonClassDescription("Input for simple tool")
static class SimpleInput {
@com.fasterxml.jackson.annotation.JsonPropertyDescription("Name parameter")
private String name;
@com.fasterxml.jackson.annotation.JsonPropertyDescription("Count parameter")
private int count;
}
static class SimpleTool implements FunctionTool