mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
a01e3f14b2
Extract hosted agent functionality from Microsoft.Agents.AI.Foundry into a new Microsoft.Agents.AI.Foundry.Hosting preview package. This resolves NU5104 build errors caused by the stable Foundry package depending on prerelease Azure SDK packages (Azure.AI.AgentServer.Responses, Azure.AI.Projects beta). Changes: - Create Microsoft.Agents.AI.Foundry.Hosting with VersionSuffix=preview, targeting .NET Core only (net8.0/9.0/10.0) - Move all Hosting/ source files to the new project - Move ToolboxRecord/ToolboxVersion overloads to FoundryAIToolExtensions - Revert Azure.AI.Projects to 2.0.0 in Directory.Packages.props; Hosting uses VersionOverride for 2.1.0-beta.1 - Clean V1 Foundry csproj: remove beta deps, ASP.NET Core ref, hosting conditionals - Update 8 hosted agent sample projects to reference Foundry.Hosting - Split unit tests: ToolboxRecord/ToolboxVersion tests moved to Hosting/ - Add Foundry.Hosting to solution file Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
77 lines
2.7 KiB
C#
77 lines
2.7 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System;
|
|
using Microsoft.Agents.AI.Foundry.Hosting;
|
|
|
|
namespace Microsoft.Agents.AI.Foundry.UnitTests.Hosting;
|
|
|
|
public class FoundryAIToolExtensionsTests
|
|
{
|
|
[Fact]
|
|
public void CreateHostedMcpToolbox_FromToolboxRecord_UsesNameAndDefaultVersion()
|
|
{
|
|
var record = Azure.AI.Projects.Agents.ProjectsAgentsModelFactory.ToolboxRecord(
|
|
id: "tbx-123",
|
|
name: "calendar-tools",
|
|
defaultVersion: "v2");
|
|
|
|
var tool = FoundryAIToolExtensions.CreateHostedMcpToolbox(record);
|
|
|
|
var marker = Assert.IsType<HostedMcpToolboxAITool>(tool);
|
|
Assert.Equal("calendar-tools", marker.ToolboxName);
|
|
Assert.Equal("v2", marker.Version);
|
|
Assert.Equal("foundry-toolbox://calendar-tools?version=v2", marker.ServerAddress);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHostedMcpToolbox_FromToolboxRecord_NullDefaultVersionOmitsQuery()
|
|
{
|
|
var record = Azure.AI.Projects.Agents.ProjectsAgentsModelFactory.ToolboxRecord(
|
|
id: "tbx-abc",
|
|
name: "finance-tools",
|
|
defaultVersion: null);
|
|
|
|
var tool = FoundryAIToolExtensions.CreateHostedMcpToolbox(record);
|
|
|
|
var marker = Assert.IsType<HostedMcpToolboxAITool>(tool);
|
|
Assert.Equal("finance-tools", marker.ToolboxName);
|
|
Assert.Null(marker.Version);
|
|
Assert.Equal("foundry-toolbox://finance-tools", marker.ServerAddress);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHostedMcpToolbox_FromToolboxRecord_Null_Throws()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(
|
|
() => FoundryAIToolExtensions.CreateHostedMcpToolbox((Azure.AI.Projects.Agents.ToolboxRecord)null!));
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHostedMcpToolbox_FromToolboxVersion_UsesNameAndVersion()
|
|
{
|
|
var version = Azure.AI.Projects.Agents.ProjectsAgentsModelFactory.ToolboxVersion(
|
|
metadata: null,
|
|
id: "ver-1",
|
|
name: "hr-tools",
|
|
version: "2025-09-01",
|
|
description: "HR toolbox",
|
|
createdAt: DateTimeOffset.UtcNow,
|
|
tools: null,
|
|
policies: null);
|
|
|
|
var tool = FoundryAIToolExtensions.CreateHostedMcpToolbox(version);
|
|
|
|
var marker = Assert.IsType<HostedMcpToolboxAITool>(tool);
|
|
Assert.Equal("hr-tools", marker.ToolboxName);
|
|
Assert.Equal("2025-09-01", marker.Version);
|
|
Assert.Equal("foundry-toolbox://hr-tools?version=2025-09-01", marker.ServerAddress);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateHostedMcpToolbox_FromToolboxVersion_Null_Throws()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(
|
|
() => FoundryAIToolExtensions.CreateHostedMcpToolbox((Azure.AI.Projects.Agents.ToolboxVersion)null!));
|
|
}
|
|
}
|