/// <inheritdoc /> public void HandleResponse(Response response) { if (requestMap.TryGetValue(response.RequestId, out var promise)) { promise.SetResult(response); requestMap.Remove(response.RequestId); } }
public async Task ShouldRemovePromiseFromMap( Response response, [Frozen, Substitute] IRequestMap requestMap, [Target] DefaultResponseService service ) { var promise = new TaskCompletionSource <Response>(); requestMap.TryGetValue(Any <Guid>(), out Any <TaskCompletionSource <Response> >() !).Returns(x => { x[1] = promise; return(true); }); service.HandleResponse(response); var result = await promise.Task; result.Should().Be(response); requestMap.Received().Remove(Is(response.RequestId)); }