// Copyright (c) Microsoft Corporation. All rights reserved. // TestProtobufAgent.cs using Microsoft.AutoGen.Contracts; using Microsoft.AutoGen.Core.Grpc.Tests.Protobuf; using Microsoft.Extensions.Logging; namespace Microsoft.AutoGen.Core.Grpc.Tests; /// /// The test agent is a simple agent that is used for testing purposes. /// public class TestProtobufAgent(AgentId id, IAgentRuntime runtime, Logger? logger = null) : BaseAgent(id, runtime, "Test Agent", logger), IHandle, IHandle { public ValueTask HandleAsync(TextMessage item, MessageContext messageContext) { ReceivedMessages[item.Source] = item.Content; return ValueTask.CompletedTask; } public ValueTask HandleAsync(RpcTextMessage item, MessageContext messageContext) { ReceivedMessages[item.Source] = item.Content; return ValueTask.FromResult(new RpcTextMessage { Source = item.Source, Content = item.Content }); } public List ReceivedItems { get; private set; } = []; /// /// Key: source /// Value: message /// private readonly Dictionary _receivedMessages = new(); public Dictionary ReceivedMessages => _receivedMessages; } [TypeSubscription("TestTopic")] public class SubscribedProtobufAgent : TestProtobufAgent { public SubscribedProtobufAgent(AgentId id, IAgentRuntime runtime, Logger? logger = null) : base(id, runtime, logger) { } }