public async Task RequestResponse() { var scope = await GetScopeAsync(); var queue = scope.Get <IQueue>(); var msg = new TestMessage(); var subResult = await queue.ReplyAsync <TestMessage, TestResponse>((message, _) => Task.FromResult(new TestResponse { Id = message.Id })); Assert.True(subResult.IsSuccess); var response = await queue.RequestAsync <TestMessage, TestResponse>(msg); Assert.NotNull(response); Assert.Equal(msg.Id, response?.message.Id); var unsubResult = await queue.StopReplyAsync <TestMessage, TestResponse>(subResult.SubscriptionId); Assert.True(unsubResult); }
public async Task UnSubscribe() { var scope = await GetScopeAsync(); var queue = scope.Get <IQueue>(); Guid?receivedId = null; var subResult = await queue.SubscribeAsync <TestMessage>((message, _) => { receivedId = message.Id; return(Task.FromResult(true)); }); Assert.True(subResult.IsSuccess); var msg = new TestMessage(); var result = await queue.PublishAsync(msg); Assert.True(result.IsSuccess); await Task.Delay(TimeSpan.FromSeconds(1)); Assert.NotNull(receivedId); receivedId = null; await queue.UnsubscribeAsync <TestMessage>(subResult.SubscriptionId); result = await queue.PublishAsync(msg); Assert.True(result.IsSuccess); await Task.Delay(TimeSpan.FromSeconds(1)); Assert.Null(receivedId); }