7 writes to Messages
Microsoft.Extensions.AI (3)
ChatCompletion\FunctionInvokingChatClient.cs (3)
365
response.
Messages
= ReplaceFunctionCallsWithApprovalRequests(response.Messages, approvalRequiredFunctions);
382
response.
Messages
= responseMessages;
428
response.
Messages
= responseMessages!;
Microsoft.Extensions.AI.Abstractions.Tests (1)
ChatCompletion\ChatResponseTests.cs (1)
43
response.
Messages
= messages;
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
SerializationChainingTests.cs (1)
26
Messages
=
Microsoft.Extensions.AI.OpenAI (1)
OpenAIResponsesChatClient.cs (1)
161
response.
Messages
= [.. ToChatMessages(responseResult.OutputItems, openAIOptions)];
Microsoft.Extensions.AI.Tests (1)
ChatCompletion\FunctionInvokingChatClientTests.cs (1)
1801
return Task.FromResult(new ChatResponse {
Messages
= messages });
375 references to Messages
Microsoft.AspNetCore.Components.AI (3)
Engine\UIAgent.cs (3)
204
foreach (var msg in response.
Messages
)
229
UIAgentLog.AddedToHistory(_logger, response.
Messages
.Count);
322
foreach (var message in response.
Messages
)
Microsoft.Extensions.AI (12)
ChatCompletion\ChatResponse{T}.cs (4)
36
: base(Throw.IfNull(response).
Messages
)
126
var json =
Messages
.Count > 0 ?
Messages
[
Messages
.Count - 1].Text : string.Empty;
ChatCompletion\FunctionInvokingChatClient.cs (6)
351
MarkServerHandledFunctionCalls(response.
Messages
);
365
response.Messages = ReplaceFunctionCallsWithApprovalRequests(response.
Messages
, approvalRequiredFunctions);
371
CopyFunctionCalls(response.
Messages
, ref functionCallContents);
381
responseMessages.AddRange(response.
Messages
);
389
(responseMessages ??= []).AddRange(response.
Messages
);
675
(responseMessages ??= []).AddRange(response.
Messages
);
ChatCompletion\ImageGeneratingChatClient.cs (1)
86
foreach (var message in response.
Messages
)
ChatCompletion\OpenTelemetryChatClient.cs (1)
545
OtelMessageSerializer.SerializeChatMessages(response.
Messages
, response.FinishReason, customContentSerializerOptions: _jsonSerializerOptions));
Microsoft.Extensions.AI.Abstractions (12)
ChatCompletion\ChatResponse.cs (2)
37
Messages
.Add(message);
58
/// instances in <see cref="
Messages
"/>.
ChatCompletion\ChatResponseExtensions.cs (10)
37
listConcrete.AddRange(response.
Messages
);
41
foreach (var message in response.
Messages
)
528
int count = response.
Messages
.Count;
531
CoalesceContent((List<AIContent>)response.
Messages
[i].Contents);
543
if (response.
Messages
.Count != 0)
545
var lastMessage = response.
Messages
[response.
Messages
.Count - 1];
557
response.
Messages
.Add(message);
561
message = response.
Messages
[response.
Messages
.Count - 1];
Microsoft.Extensions.AI.Abstractions.Tests (132)
ChatCompletion\ChatResponseTests.cs (19)
20
Assert.Empty(response.
Messages
);
24
Assert.Empty(response.
Messages
);
34
Assert.NotNull(response.
Messages
);
35
Assert.Same(response.
Messages
, response.
Messages
);
39
Assert.Same(messages, response.
Messages
);
42
Assert.NotSame(messages, response.
Messages
);
44
Assert.Same(messages, response.
Messages
);
104
Assert.Equal(ChatRole.Assistant, result.
Messages
.Single().Role);
105
Assert.Equal("the message", result.
Messages
.Single().Text);
142
Assert.Equal(ChatRole.Assistant, result.
Messages
.Single().Role);
143
Assert.Equal("the message", result.
Messages
.Single().Text);
203
Assert.Single(result.
Messages
);
204
Assert.Equal(ChatRole.Assistant, result.
Messages
[0].Role);
205
Assert.Equal("the message", result.
Messages
[0].Text);
206
Assert.Equal("bot", result.
Messages
[0].AuthorName);
207
Assert.Equal("msg1", result.
Messages
[0].MessageId);
208
Assert.NotNull(result.
Messages
[0].AdditionalProperties);
209
Assert.Equal("msgVal", result.
Messages
[0].AdditionalProperties!["msgKey"]?.ToString());
ChatCompletion\ChatResponseUpdateExtensionsTests.cs (113)
54
ChatMessage message = response.
Messages
.Single();
94
Assert.Equal(9, response.
Messages
.Count);
96
Assert.Equal("!a", response.
Messages
[0].Text);
97
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
99
Assert.Equal("b", response.
Messages
[1].Text);
100
Assert.Equal(ChatRole.Assistant, response.
Messages
[1].Role);
102
Assert.Equal("cd", response.
Messages
[2].Text);
103
Assert.Equal(ChatRole.User, response.
Messages
[2].Role);
105
Assert.Equal("e", response.
Messages
[3].Text);
106
Assert.Equal(ChatRole.Assistant, response.
Messages
[3].Role);
108
Assert.Equal("fg", response.
Messages
[4].Text);
109
Assert.Equal(ChatRole.Tool, response.
Messages
[4].Role);
111
Assert.Equal("h", response.
Messages
[5].Text);
112
Assert.Equal(ChatRole.Tool, response.
Messages
[5].Role);
114
Assert.Equal("i", response.
Messages
[6].Text);
115
Assert.Equal(new ChatRole("human"), response.
Messages
[6].Role);
117
Assert.Equal("jkl", response.
Messages
[7].Text);
118
Assert.Equal(new ChatRole("human"), response.
Messages
[7].Role);
120
Assert.Equal("m", response.
Messages
[8].Text);
121
Assert.Equal(ChatRole.Assistant, response.
Messages
[8].Role);
158
Assert.Equal(4, response.
Messages
.Count);
160
Assert.Equal("Hello from Alice!", response.
Messages
[0].Text);
161
Assert.Equal("Alice", response.
Messages
[0].AuthorName);
162
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
164
Assert.Equal("Hi from Bob!", response.
Messages
[1].Text);
165
Assert.Equal("Bob", response.
Messages
[1].AuthorName);
166
Assert.Equal(ChatRole.Assistant, response.
Messages
[1].Role);
168
Assert.Equal("Greetings from Charlie!", response.
Messages
[2].Text);
169
Assert.Equal("Charlie", response.
Messages
[2].AuthorName);
170
Assert.Equal(ChatRole.Assistant, response.
Messages
[2].Role);
172
Assert.Equal("Alice again! Still Alice. And more.", response.
Messages
[3].Text);
173
Assert.Equal("Alice", response.
Messages
[3].AuthorName);
174
Assert.Equal(ChatRole.Assistant, response.
Messages
[3].Role);
208
Assert.Equal(5, response.
Messages
.Count);
210
Assert.Equal("AB", response.
Messages
[0].Text);
211
Assert.Equal("Alice", response.
Messages
[0].AuthorName);
212
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
213
Assert.Equal("1", response.
Messages
[0].MessageId);
215
Assert.Equal("C", response.
Messages
[1].Text);
216
Assert.Equal("Bob", response.
Messages
[1].AuthorName);
217
Assert.Equal(ChatRole.Assistant, response.
Messages
[1].Role);
218
Assert.Equal("1", response.
Messages
[1].MessageId);
220
Assert.Equal("DE", response.
Messages
[2].Text);
221
Assert.Equal("Bob", response.
Messages
[2].AuthorName);
222
Assert.Equal(ChatRole.Assistant, response.
Messages
[2].Role);
223
Assert.Equal("2", response.
Messages
[2].MessageId);
225
Assert.Equal("F", response.
Messages
[3].Text);
226
Assert.Equal("Bob", response.
Messages
[3].AuthorName);
227
Assert.Equal(ChatRole.User, response.
Messages
[3].Role);
228
Assert.Equal("2", response.
Messages
[3].MessageId);
230
Assert.Equal("GH", response.
Messages
[4].Text);
231
Assert.Equal("Charlie", response.
Messages
[4].AuthorName);
232
Assert.Equal(ChatRole.Tool, response.
Messages
[4].Role);
233
Assert.Equal("3", response.
Messages
[4].MessageId);
265
ChatMessage message = Assert.Single(response.
Messages
);
295
Assert.Equal(2, response.
Messages
.Count);
297
Assert.Equal("Hello there I'm Bob speaking", response.
Messages
[0].Text);
298
Assert.Equal("Bob", response.
Messages
[0].AuthorName); // Last AuthorName wins
299
Assert.Equal("1", response.
Messages
[0].MessageId);
301
Assert.Equal("Now Alice", response.
Messages
[1].Text);
302
Assert.Equal("Alice", response.
Messages
[1].AuthorName);
303
Assert.Equal("1", response.
Messages
[1].MessageId);
330
Assert.Equal(2, response.
Messages
.Count);
332
Assert.Equal("Hello there from AI", response.
Messages
[0].Text);
333
Assert.Equal("msg1", response.
Messages
[0].MessageId); // Last MessageId wins
334
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
336
Assert.Equal("Next message", response.
Messages
[1].Text);
337
Assert.Equal("msg2", response.
Messages
[1].MessageId);
338
Assert.Equal(ChatRole.Assistant, response.
Messages
[1].Role);
368
ChatMessage message = Assert.Single(response.
Messages
);
398
Assert.Equal(2, response.
Messages
.Count);
400
Assert.Equal("Hello there from AI", response.
Messages
[0].Text);
401
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
402
Assert.Equal("1", response.
Messages
[0].MessageId);
404
Assert.Equal("User message", response.
Messages
[1].Text);
405
Assert.Equal(ChatRole.User, response.
Messages
[1].Role);
406
Assert.Equal("1", response.
Messages
[1].MessageId);
435
Assert.Equal(3, response.
Messages
.Count);
437
Assert.Equal("Hello from agent1", response.
Messages
[0].Text);
438
Assert.Equal(new ChatRole("agent1"), response.
Messages
[0].Role);
440
Assert.Equal("Hi from agent2", response.
Messages
[1].Text);
441
Assert.Equal(new ChatRole("agent2"), response.
Messages
[1].Role);
443
Assert.Equal("Assistant here", response.
Messages
[2].Text);
444
Assert.Equal(ChatRole.Assistant, response.
Messages
[2].Role);
471
Assert.Equal(3, response.
Messages
.Count);
475
var msg1 = response.
Messages
[0];
483
var msg2 = response.
Messages
[1];
491
var msg3 = response.
Messages
[2];
519
var message = Assert.Single(response.
Messages
);
567
Assert.Equal(4, response.
Messages
.Count);
570
ChatMessage message1 = response.
Messages
[0];
578
ChatMessage message2 = response.
Messages
[1];
586
ChatMessage message3 = response.
Messages
[2];
594
ChatMessage message4 = response.
Messages
[3];
669
ChatMessage message = response.
Messages
.Single();
708
ChatMessage message = Assert.Single(response.
Messages
);
738
ChatMessage message = Assert.Single(response.
Messages
);
783
ChatMessage message = Assert.Single(response.
Messages
);
816
Assert.Equal("Hello, world!", Assert.IsType<TextContent>(Assert.Single(Assert.Single(response.
Messages
).Contents)).Text);
861
Assert.Single(response.
Messages
);
863
Assert.Equal("abcdefgh", response.
Messages
[0].Text);
864
Assert.Equal(ChatRole.Tool, response.
Messages
[0].Role);
865
Assert.Equal(early, response.
Messages
[0].CreatedAt);
911
Assert.Single(response.
Messages
);
912
Assert.Equal("ab", response.
Messages
[0].Text);
913
Assert.Equal(expected, response.
Messages
[0].CreatedAt);
950
ChatMessage message = Assert.Single(response.
Messages
);
998
ChatMessage message = Assert.Single(response.
Messages
);
1041
ChatMessage message = Assert.Single(response.
Messages
);
1072
ChatMessage message = Assert.Single(response.
Messages
);
1092
ChatMessage message = Assert.Single(response.
Messages
);
1132
var ws1First = Assert.Single(response1.
Messages
.SelectMany(m => m.Contents).OfType<WebSearchToolCallContent>());
1138
var ws1Second = Assert.Single(response2.
Messages
.SelectMany(m => m.Contents).OfType<WebSearchToolCallContent>());
Microsoft.Extensions.AI.Evaluation (6)
ChatResponseExtensions.cs (6)
21
/// (present within the <see cref="ChatMessage.Contents"/> of the <see cref="ChatResponse.
Messages
"/>) that are not
22
/// <see cref="TextContent"/>s. Any <see cref="ChatResponse.
Messages
"/> that contain no <see cref="TextContent"/>s
23
/// will be skipped and will not be rendered. If none of the <see cref="ChatResponse.
Messages
"/> include any
27
/// The rendered <see cref="ChatResponse.
Messages
"/> are each prefixed with the <see cref="ChatMessage.Role"/> and
29
/// <see cref="ChatResponse.
Messages
"/>s are also always separated by new line characters in the returned string.
38
return response.
Messages
.RenderText();
Microsoft.Extensions.AI.Evaluation.Integration.Tests (2)
SafetyEvaluatorTests.cs (2)
275
messages.AddRange(response1.
Messages
);
595
messages.AddRange(response1.
Messages
);
Microsoft.Extensions.AI.Evaluation.Quality (7)
ChatResponseExtensions.cs (2)
18
return modelResponse.
Messages
.RenderAsJson(options);
29
foreach (AIContent content in modelResponse.
Messages
.SelectMany(m => m.Contents))
IntentResolutionEvaluator.cs (2)
98
if (!modelResponse.
Messages
.Any())
121
modelResponse.
Messages
.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
TaskAdherenceEvaluator.cs (2)
97
if (!modelResponse.
Messages
.Any())
120
modelResponse.
Messages
.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
ToolCallAccuracyEvaluator.cs (1)
100
modelResponse.
Messages
.SelectMany(m => m.Contents).OfType<FunctionCallContent>();
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (5)
ScenarioRunResultTests.cs (2)
427
y is not null && x.
Messages
.SequenceEqual(y.
Messages
, ChatMessageComparer.Instance);
SerializationChainingTests.cs (3)
45
Assert.Single(resp.ModelResponse.
Messages
);
46
Assert.Equal(ChatRole.User, resp.ModelResponse.
Messages
[0].Role);
47
Assert.Equal("A user message", resp.ModelResponse.
Messages
[0].Text);
Microsoft.Extensions.AI.Evaluation.Safety (2)
ChatResponseExtensions.cs (1)
9
=> response.
Messages
.ContainsImageWithSupportedFormat();
ContentSafetyEvaluator.cs (1)
102
IEnumerable<ChatMessage> conversation = [.. messages, .. modelResponse.
Messages
];
Microsoft.Extensions.AI.Integration.Tests (16)
ChatClientIntegrationTests.cs (4)
663
Assert.Equal(firstResponse.
Messages
.Select(m => m.Text), secondResponse.
Messages
.Select(m => m.Text));
669
Assert.NotEqual(firstResponse.
Messages
, thirdResponse.
Messages
);
ImageGeneratingChatClientIntegrationTests.cs (11)
84
var contents = response.
Messages
.SelectMany(m => m.Contents).ToArray();
138
var imageResults = response.
Messages
200
chatHistory.AddRange(firstResponse.
Messages
);
214
var firstToolResultContent = Assert.Single(firstResponse.
Messages
.SelectMany(m => m.Contents).OfType<ImageGenerationToolResultContent>());
220
Assert.Single(secondResponse.
Messages
.SelectMany(m => m.Contents).OfType<ImageGenerationToolResultContent>().SelectMany(t => t.Outputs!.OfType<DataContent>()));
250
chatHistory.AddRange(firstResponse.
Messages
);
255
chatHistory.AddRange(secondResponse.
Messages
);
269
var secondToolResultContent = Assert.Single(secondResponse.
Messages
.SelectMany(m => m.Contents).OfType<ImageGenerationToolResultContent>());
295
chatHistory.AddRange(firstResponse.
Messages
);
300
chatHistory.AddRange(secondResponse.
Messages
);
314
var firstToolResultContent = Assert.Single(firstResponse.
Messages
.SelectMany(m => m.Contents).OfType<ImageGenerationToolResultContent>());
PromptBasedFunctionCallingChatClient.cs (1)
89
var message = result.
Messages
.First();
Microsoft.Extensions.AI.OpenAI (4)
MicrosoftExtensionsAIChatExtensions.cs (1)
62
var lastMessage = response.
Messages
.LastOrDefault();
MicrosoftExtensionsAIResponsesExtensions.cs (1)
115
foreach (var responseItem in OpenAIResponsesChatClient.ToOpenAIResponseItems(response.
Messages
, options))
OpenAIResponsesChatClient.cs (2)
163
if (response.
Messages
.LastOrDefault() is { } lastMessage && responseResult.Error is { } error)
168
foreach (var message in response.
Messages
)
Microsoft.Extensions.AI.OpenAI.Tests (102)
OpenAIChatClientTests.cs (22)
165
Assert.Single(response.
Messages
.Single().Contents);
166
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
167
Assert.Equal("chatcmpl-ADx3PvAnCwJg0woha4pYsBTi3ZpOI", response.
Messages
.Single().MessageId);
871
Assert.Single(response.
Messages
.Single().Contents);
872
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
873
Assert.Equal("chatcmpl-ADyV17bXeSm5rzUx3n46O7m3M0o3P", response.
Messages
.Single().MessageId);
969
Assert.Single(response.
Messages
.Single().Contents);
970
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1067
Assert.Single(response.
Messages
.Single().Contents);
1068
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1181
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1199
Assert.Single(response.
Messages
.Single().Contents);
1200
FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.
Messages
.Single().Contents[0]);
1266
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1284
Assert.Single(response.
Messages
.Single().Contents);
1285
TextContent fcc = Assert.IsType<TextContent>(response.
Messages
.Single().Contents[0]);
1521
Assert.Single(response.
Messages
.Single().Contents);
1522
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1640
Assert.Single(response.
Messages
.Single().Contents);
1641
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1642
Assert.Equal("chatcmpl-BHaQ3nkeSDGhLzLya3mGbB1EXSqve", response.
Messages
.Single().MessageId);
1950
var message = response.
Messages
.Single();
OpenAIConversionTests.cs (2)
904
ChatMessage message = Assert.Single(response.
Messages
);
935
ChatMessage message = Assert.Single(response.
Messages
);
OpenAIHostedFileClientIntegrationTests.cs (3)
283
foreach (var msg in response.
Messages
)
353
foreach (var msg in response.
Messages
)
401
foreach (var msg in setupResponse.
Messages
)
OpenAIResponseClientIntegrationTests.cs (25)
44
ChatMessage message = Assert.Single(response.
Messages
);
49
var toolCallContent = response.
Messages
.SelectMany(m => m.Contents).OfType<CodeInterpreterToolCallContent>().SingleOrDefault();
62
var toolResultContent = response.
Messages
.SelectMany(m => m.Contents).OfType<CodeInterpreterToolResultContent>().FirstOrDefault();
95
ChatMessage m = Assert.Single(response.
Messages
);
162
ChatMessage m = Assert.Single(response.
Messages
);
233
Assert.NotEmpty(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>());
234
Assert.NotEmpty(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>());
235
Assert.Empty(response.
Messages
.SelectMany(m => m.Contents).OfType<ToolApprovalRequestContent>());
283
input.AddRange(response.
Messages
);
287
response.
Messages
337
Assert.NotEmpty(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>());
338
Assert.NotEmpty(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>());
342
var allContents = response.
Messages
.SelectMany(m => m.Contents).ToList();
364
Assert.Empty(response.
Messages
);
397
Assert.Empty(response.
Messages
);
539
input.AddRange(response.
Messages
);
540
var approvalRequest = Assert.Single(response.
Messages
.SelectMany(m => m.Contents).OfType<ToolApprovalRequestContent>());
551
var toolCall = Assert.Single(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolCallContent>());
554
var toolResult = Assert.Single(response.
Messages
.SelectMany(m => m.Contents).OfType<McpServerToolResultContent>());
601
var messages = response.
Messages
.ToList();
712
var reasoningContent = response1.
Messages
794
var reasoningContent = response1.
Messages
878
var rawJsons = response.
Messages
988
var rawJsons = response.
Messages
1038
var rawJsons = response.
Messages
OpenAIResponseClientTests.cs (50)
163
Assert.Single(response.
Messages
.Single().Contents);
164
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
1012
ChatMessage responseMessage = Assert.Single(response.
Messages
);
1480
Assert.Equal(2, response.
Messages
.Count);
1481
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
1482
Assert.Equal("Hello!", response.
Messages
[0].Text);
1483
Assert.Equal(ChatRole.Assistant, response.
Messages
[1].Role);
1484
Assert.Equal(" How can I assist you today?", response.
Messages
[1].Text);
1605
approvalRequest = Assert.Single(response.
Messages
.SelectMany(m => m.Contents).OfType<ToolApprovalRequestContent>());
1733
var message = Assert.Single(response.
Messages
);
1734
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
1735
Assert.Equal("The `README.md` file for `Microsoft.Extensions.AI.Abstractions` is located at:\n\n```\nsrc/Libraries/Microsoft.Extensions.AI.Abstractions/README.md\n```\n\nThis file provides an overview of the `Microsoft.Extensions.AI.Abstractions` package, including installation instructions and usage examples for its core interfaces like `IChatClient` and `IEmbeddingGenerator`.", response.
Messages
[0].Text);
1877
var message = Assert.Single(response.
Messages
);
2110
var message = Assert.Single(response.
Messages
);
2111
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
2112
Assert.Equal("The `README.md` file for `Microsoft.Extensions.AI.Abstractions` is located at:\n\n```\nsrc/Libraries/Microsoft.Extensions.AI.Abstractions/README.md\n```\n\nThis file includes an overview, installation instructions, and usage examples related to the package.", response.
Messages
[0].Text);
2521
var message = Assert.Single(response.
Messages
);
2522
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
2523
Assert.StartsWith("The path to the `README.md` file", response.
Messages
[0].Text);
2730
var message = Assert.Single(response.
Messages
);
2731
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
2732
Assert.Equal("The tool encountered an error during execution.", response.
Messages
[0].Text);
2834
var message = Assert.Single(response.
Messages
);
2992
Assert.Empty(response.
Messages
);
3094
Assert.Empty(response.
Messages
);
3106
Assert.Single(response.
Messages
.Single().Contents);
3107
Assert.Equal(ChatRole.Assistant, response.
Messages
.Single().Role);
3496
Assert.Single(response.
Messages
);
3498
var message = response.
Messages
[0];
3716
Assert.Single(response.
Messages
);
3718
var message = response.
Messages
[0];
3841
Assert.Single(response.
Messages
);
3843
var message = response.
Messages
[0];
5579
var lastMessage = response.
Messages
.Last();
6237
Assert.Single(response.
Messages
);
6238
var message = response.
Messages
[0];
6323
var errorContent = response.
Messages
.Last().Contents.OfType<ErrorContent>().FirstOrDefault();
6378
var userMessage = response.
Messages
.FirstOrDefault(m => m.Role == ChatRole.User);
6387
var assistantMessage = response.
Messages
.LastOrDefault(m => m.Role == ChatRole.Assistant);
6441
var userMessage = response.
Messages
.FirstOrDefault(m => m.Role == ChatRole.User);
6450
var assistantMessage = response.
Messages
.LastOrDefault(m => m.Role == ChatRole.Assistant);
6525
Assert.Single(response.
Messages
);
6526
Assert.Equal(ChatRole.Assistant, response.
Messages
[0].Role);
6528
var contents = response.
Messages
[0].Contents;
7002
var message = Assert.Single(response.
Messages
);
7284
Assert.Single(response.
Messages
);
7286
var message = response.
Messages
[0];
7452
var message = Assert.Single(response.
Messages
);
8992
var call = Assert.IsType<FunctionCallContent>(Assert.Single(response.
Messages
[0].Contents));
9099
var coalesced = response.
Messages
[0].Contents.OfType<FunctionCallContent>().Single();
Microsoft.Extensions.AI.Tests (72)
ChatCompletion\DistributedCachingChatClientTest.cs (6)
729
Assert.NotSame(result2.
Messages
.Last().Contents[0], expectedResponse.
Messages
.Last().Contents[0]);
730
Assert.NotSame(result2.
Messages
.Last().Contents[1], expectedResponse.
Messages
.Last().Contents[1]);
803
ChatMessage expectedMessage = expected.
Messages
.Last();
804
ChatMessage actualMessage = actual.
Messages
.Last();
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (8)
1437
AssertExtensions.EqualMessageLists(expectedOutput, result.
Messages
.ToList());
1448
AssertExtensions.EqualMessageLists(expectedOutput, result.
Messages
.ToList());
1494
AssertExtensions.EqualMessageLists(expectedOutput, result.
Messages
.ToList());
1505
AssertExtensions.EqualMessageLists(expectedOutput, result.
Messages
.ToList());
2047
var actualOutput = result.
Messages
as List<ChatMessage> ?? result.
Messages
.ToList();
2129
var actualOutput = result.
Messages
as List<ChatMessage> ?? result.
Messages
.ToList();
ChatCompletion\FunctionInvokingChatClientTests.cs (51)
430
var toolMessage = response.
Messages
.First(m => m.Role == ChatRole.Tool);
510
var toolMessage = response.
Messages
.First(m => m.Role == ChatRole.Tool);
594
var toolMessage = response.
Messages
.First(m => m.Role == ChatRole.Tool);
1215
Assert.Collection(response.
Messages
,
1256
Assert.Equal(5, response.
Messages
.Count);
1258
Assert.IsType<FunctionCallContent>(Assert.Single(response.
Messages
[0].Contents));
1259
Assert.IsType<FunctionResultContent>(Assert.Single(response.
Messages
[1].Contents));
1260
Assert.IsType<FunctionCallContent>(Assert.Single(response.
Messages
[2].Contents));
1261
Assert.IsType<FunctionResultContent>(Assert.Single(response.
Messages
[3].Contents));
1262
Assert.IsType<TextContent>(Assert.Single(response.
Messages
[4].Contents));
1541
Assert.Equal(ChatRole.Tool, response.
Messages
.Last().Role);
1542
var frc = Assert.IsType<FunctionResultContent>(Assert.Single(response.
Messages
.Last().Contents));
2216
Assert.Contains(response.
Messages
, m => m.Contents.Any(c => c is FunctionCallContent fcc && fcc.InformationalOnly));
2217
Assert.DoesNotContain(response.
Messages
, m => m.Contents.Any(c => c is FunctionResultContent));
2288
Assert.Contains(response.
Messages
, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2289
Assert.DoesNotContain(response.
Messages
, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId2"));
2333
Assert.Contains(response.
Messages
, m => m.Contents.Any(c => c is FunctionCallContent fcc && fcc.CallId == "callId1" && fcc.InformationalOnly));
2336
Assert.Contains(response.
Messages
, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2390
chat.AddRange(result.
Messages
);
2454
chat.AddRange(result.
Messages
);
2587
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2592
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2683
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2692
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2788
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2790
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2796
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2798
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2891
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2893
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2899
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2901
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2993
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
2995
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3001
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3003
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3168
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3177
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3269
Assert.Contains(result.
Messages
, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3272
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3279
Assert.Contains(result.
Messages
, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3282
Assert.Contains(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3375
Assert.Contains(result.
Messages
, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3378
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3386
Assert.Contains(result.
Messages
, m => m.Contents.OfType<ToolApprovalRequestContent>().Any(frc => ((FunctionCallContent)frc.ToolCall).Name == "FunctionB"));
3389
Assert.DoesNotContain(result.
Messages
, m => m.Contents.OfType<FunctionResultContent>()
3684
Assert.Contains(response.
Messages
, m =>
3688
Assert.Contains(response.
Messages
, m =>
3762
Assert.Contains(response.
Messages
, m =>
3766
Assert.Contains(response.
Messages
, m =>
3824
Assert.Contains(response.
Messages
, m =>
ChatCompletion\ImageGeneratingChatClientTests.cs (5)
56
Assert.Equal("test response", response.
Messages
[0].Text);
335
Assert.Single(response.
Messages
);
336
var message = response.
Messages
[0];
430
Assert.Single(response.
Messages
);
431
var contents = response.
Messages
[0].Contents;
ChatCompletion\UseDelegateChatClientTests.cs (2)
103
cc.
Messages
.SelectMany(c => c.Contents).OfType<TextContent>().Last().Text += " world";
206
cc.
Messages
.SelectMany(c => c.Contents).OfType<TextContent>().Last().Text += " world (non-streaming)";