Make ClientTransportClosedException public and unify transport exception handling (#1467)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> Co-authored-by: halter73 <54385+halter73@users.noreply.github.com> Co-authored-by: Stephen Toub <stoub@microsoft.com>
This commit is contained in:
parent
498de089fc
commit
7662ce6b70
1 changed files with 253 additions and 38 deletions
|
|
@ -4,6 +4,48 @@ namespace ModelContextProtocol.Tests.Client;
|
|||
|
||||
public class ClientCompletionDetailsTests
|
||||
{
|
||||
[Fact]
|
||||
public void ClientTransportClosedException_ExposesDetails()
|
||||
{
|
||||
var details = new StdioClientCompletionDetails
|
||||
{
|
||||
ExitCode = 42,
|
||||
ProcessId = 12345,
|
||||
StandardErrorTail = ["error line"],
|
||||
Exception = new IOException("process exited"),
|
||||
};
|
||||
|
||||
var exception = new ClientTransportClosedException(details);
|
||||
|
||||
Assert.IsType<StdioClientCompletionDetails>(exception.Details);
|
||||
var stdioDetails = (StdioClientCompletionDetails)exception.Details;
|
||||
Assert.Equal(42, stdioDetails.ExitCode);
|
||||
Assert.Equal(12345, stdioDetails.ProcessId);
|
||||
Assert.Equal(["error line"], stdioDetails.StandardErrorTail);
|
||||
Assert.Equal("process exited", exception.Message);
|
||||
Assert.IsType<IOException>(exception.InnerException);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClientTransportClosedException_WithNullException_HasDefaultMessage()
|
||||
{
|
||||
var details = new ClientCompletionDetails();
|
||||
|
||||
var exception = new ClientTransportClosedException(details);
|
||||
|
||||
Assert.Equal("The transport was closed.", exception.Message);
|
||||
Assert.Null(exception.InnerException);
|
||||
Assert.Same(details, exception.Details);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClientTransportClosedException_IsIOException()
|
||||
{
|
||||
var details = new ClientCompletionDetails();
|
||||
IOException exception = new ClientTransportClosedException(details);
|
||||
Assert.IsType<ClientTransportClosedException>(exception);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ClientCompletionDetails_PropertiesRoundtrip()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue