using System.Text.Json.Nodes; using Centron.BusinessLogic.ArtificialIntelligence.Chat; namespace Centron.Tests.BL.ArtificialIntelligence.Chat; public class GoogleGeminiChatModelClientTest { [Fact] public void CreateFunctionDeclaration_UsesFullJsonSchemaField() { const string jsonSchema = """ { "type": "object", "properties": { "query": { "type": ["string", "null"] } }, "additionalProperties": false } """; var declaration = GoogleGeminiChatModelClient.CreateFunctionDeclaration( new AiModelToolDescriptor { Name = "search_accounts", Description = "Find accounts.", JsonSchema = jsonSchema }); Assert.Null(declaration["parameters"]); var parameters = Assert.IsType(declaration["parametersJsonSchema"]); Assert.False(parameters["additionalProperties"]!.GetValue()); var properties = Assert.IsType(parameters["properties"]); var query = Assert.IsType(properties["query"]); var types = Assert.IsType(query["type"]); Assert.Equal("string", types[0]!.GetValue()); Assert.Equal("null", types[1]!.GetValue()); } }