Extract Tasks into the ModelContextProtocol.Extensions.Tasks extension package (#1693)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Tarek Mahmoud Sayed <tarekms@ntdev.microsoft.com>
This commit is contained in:
parent
ffc557f920
commit
2ca96f548b
1 changed files with 2559 additions and 1895 deletions
|
|
@ -1,3 +1,4 @@
|
|||
using ModelContextProtocol.Extensions.Tasks;
|
||||
using ModelContextProtocol.Protocol;
|
||||
using ModelContextProtocol.Server;
|
||||
using System.Text.Json;
|
||||
|
|
@ -87,6 +88,59 @@ public class InMemoryMcpTaskStoreTests
|
|||
Assert.Null(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetTaskAsync_WithinTimeToLive_ReturnsTask()
|
||||
{
|
||||
var store = new InMemoryMcpTaskStore { DefaultTimeToLive = TimeSpan.FromMinutes(10) };
|
||||
var created = await store.CreateTaskAsync(CT);
|
||||
|
||||
var result = await store.GetTaskAsync(created.TaskId, CT);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Equal(created.TaskId, result.TaskId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetTaskAsync_AfterTimeToLiveElapsed_ReturnsNull()
|
||||
{
|
||||
var store = new InMemoryMcpTaskStore { DefaultTimeToLive = TimeSpan.FromMilliseconds(100) };
|
||||
var created = await store.CreateTaskAsync(CT);
|
||||
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(500), CT);
|
||||
|
||||
var result = await store.GetTaskAsync(created.TaskId, CT);
|
||||
|
||||
Assert.Null(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetTaskAsync_WithoutTimeToLive_DoesNotExpire()
|
||||
{
|
||||
var store = new InMemoryMcpTaskStore();
|
||||
var created = await store.CreateTaskAsync(CT);
|
||||
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(200), CT);
|
||||
|
||||
var result = await store.GetTaskAsync(created.TaskId, CT);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Equal(created.TaskId, result.TaskId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetTaskAsync_WithZeroTimeToLive_DoesNotExpire()
|
||||
{
|
||||
var store = new InMemoryMcpTaskStore { DefaultTimeToLive = TimeSpan.Zero };
|
||||
var created = await store.CreateTaskAsync(CT);
|
||||
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(200), CT);
|
||||
|
||||
var result = await store.GetTaskAsync(created.TaskId, CT);
|
||||
|
||||
Assert.NotNull(result);
|
||||
Assert.Equal(created.TaskId, result.TaskId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SetCompletedAsync_TransitionsToCompleted()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue