Refactor transports to help enable graceful shutdown (#142)
- This also paves the way for better multi-session support - We should definitely rethink names for the transport API - For now, I kept the names similar as possible, so we can focus on the API shape Co-authored-by: Stephen Toub <stoub@microsoft.com>
This commit is contained in:
parent
d47c834fa9
commit
2ab9db0878
1 changed files with 2015 additions and 1847 deletions
|
|
@ -3,16 +3,27 @@ using ModelContextProtocol.Test.Utils;
|
|||
|
||||
namespace ModelContextProtocol.Tests.Utils;
|
||||
|
||||
public class LoggedTest(ITestOutputHelper testOutputHelper)
|
||||
public class LoggedTest : IDisposable
|
||||
{
|
||||
public ITestOutputHelper TestOutputHelper { get; } = testOutputHelper;
|
||||
public ILoggerFactory LoggerFactory { get; } = CreateLoggerFactory(testOutputHelper);
|
||||
private readonly DelegatingTestOutputHelper _delegatingTestOutputHelper;
|
||||
|
||||
private static ILoggerFactory CreateLoggerFactory(ITestOutputHelper testOutputHelper)
|
||||
public LoggedTest(ITestOutputHelper testOutputHelper)
|
||||
{
|
||||
return Microsoft.Extensions.Logging.LoggerFactory.Create(builder =>
|
||||
_delegatingTestOutputHelper = new()
|
||||
{
|
||||
builder.AddProvider(new XunitLoggerProvider(testOutputHelper));
|
||||
CurrentTestOutputHelper = testOutputHelper,
|
||||
};
|
||||
LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder =>
|
||||
{
|
||||
builder.AddProvider(new XunitLoggerProvider(_delegatingTestOutputHelper));
|
||||
});
|
||||
}
|
||||
|
||||
public ITestOutputHelper TestOutputHelper => _delegatingTestOutputHelper;
|
||||
public ILoggerFactory LoggerFactory { get; }
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
_delegatingTestOutputHelper.CurrentTestOutputHelper = null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue